寫一個(gè)類. 類里留個(gè)變量(fun2_tiime)記錄函數(shù)2執(zhí)行的時(shí)間戳.
創(chuàng)新互聯(lián)從2013年成立,先為海棠等服務(wù)建站,海棠等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為海棠企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
類里寫個(gè)無(wú)限循環(huán)的函數(shù), 不斷比較 變量(fun2_tiime)當(dāng)前時(shí)間差值, 如果差值大于20就執(zhí)行函數(shù)2.
map函數(shù)第一個(gè)參數(shù)是一個(gè)函數(shù)function,第二個(gè)參數(shù)是一個(gè)可迭代的對(duì)象iterable,他的功能是將可迭代對(duì)象iterable里面的每一項(xiàng)都應(yīng)用到函數(shù)function中,然后返回一個(gè)迭代器。
可迭代器里面有多少個(gè)元素則結(jié)果就包含多少個(gè)元素
filter() 函數(shù)用于過(guò)濾序列,過(guò)濾掉不符合條件的元素,返回由符合條件元素組成的新列表。
該接收兩個(gè)參數(shù),第一個(gè)為函數(shù),第二個(gè)為序列,序列的每個(gè)元素作為參數(shù)傳遞給函數(shù)進(jìn)行判斷,然后返回 True 或 False,最后將返回 True 的元素放到新列表中。
reduce() 函數(shù)會(huì)對(duì)參數(shù)序列中元素進(jìn)行累積。
函數(shù)將一個(gè)數(shù)據(jù)集合(鏈表,元組等)中的所有數(shù)據(jù)進(jìn)行下列操作:用傳給 reduce 中的函數(shù) function(有兩個(gè)參數(shù))先對(duì)集合中的第 1、2 個(gè)元素進(jìn)行操作,得到的結(jié)果再與第三個(gè)數(shù)據(jù)用 function 函數(shù)運(yùn)算,最后得到一個(gè)結(jié)果。
使用條件集合{}和sum函數(shù)。即在countif()第二個(gè)參數(shù)中使用條件集合{},然后用sum()函數(shù)求滿足這些條件的計(jì)數(shù)和。criteria:為確定哪些單元格將被計(jì)算在內(nèi)的條件,其形式可以為數(shù)字、表達(dá)式、單元格引用或文本。例如,條件可以表示為 32、"32"、"32" 、"apples" 或 B4。
COUNTIF(B2:C5,{"60","90"})統(tǒng)計(jì)出大于60的人數(shù)6和大于90的人數(shù)1,即{6,1}。{6,1}與{1,-1}相乘得到{6,-1},兩者相加即得到大于60、小于90之間的人數(shù)5人。
COUNTIF函數(shù)語(yǔ)法:COUNTIF(range,criteria)
range:是一個(gè)或多個(gè)要計(jì)數(shù)的單元格,其中包括數(shù)字或名稱、數(shù)組或包含數(shù)字的引用。空值和文本值將被忽略。
向左轉(zhuǎn)|向右轉(zhuǎn)
python中if多個(gè)條件連接關(guān)鍵字有三個(gè),分別是:or、and、elif。
1、or連接。or關(guān)鍵字的作用是不需要將兩個(gè)條件都成立,只要有一邊的條件是成立的,那么最后的運(yùn)行結(jié)果返回的就是true。我們可以使用它無(wú)限的添加條件進(jìn)行判斷。
2、and連接。這種連接方式和or不一樣,它是需要兩個(gè)條件判斷語(yǔ)句同時(shí)成立的時(shí)候才會(huì)繼續(xù)執(zhí)行if中的語(yǔ)句,最后的結(jié)果返回的才是true,假設(shè)有一個(gè)條件為false,那么它最后的結(jié)果就是false。
3、elif多條件判斷。前面兩種多條件語(yǔ)句的判斷,是將不同的條件連接在一起,而elif是將條件進(jìn)行分開(kāi)處理,代碼的運(yùn)行流程就是作用當(dāng)?shù)谝粋€(gè)if成立時(shí)就會(huì)執(zhí)行下面的語(yǔ)句塊,否則就執(zhí)行elif里的代碼。
python if 用法
1、 條件測(cè)試
每條 if 語(yǔ)句的核心都是一個(gè)值為True或False的表達(dá)式,這種表達(dá)式被稱為條件測(cè)試。Python根據(jù)條件測(cè)試的值為True還是False來(lái)決定是否執(zhí)行 if 語(yǔ)句中的代碼。如果條件測(cè)試的值為True,就執(zhí)行緊跟在 if 語(yǔ)句后面的代碼;如果值為False,Python就忽略這些代碼。
2、比較數(shù)字
數(shù)字的比較與字符串的比較類似,除了相等(==) 和不相等(!=),還有大于()、大于等于 (=)、小于 ( )和小于等于(=)。
3、檢查多個(gè)條件
有時(shí)候需要同時(shí)檢查多個(gè)條件,在幾個(gè)條件都為True時(shí)才執(zhí)行相應(yīng)的操作,或者只要求多個(gè)條件中的一個(gè)條件為True時(shí)就執(zhí)行相應(yīng)的操作,在這些情況下,關(guān)鍵字and和or可以幫助我們輕松實(shí)現(xiàn)。
4、檢查特定值是否在列表中
有時(shí)候,執(zhí)行操作前需要檢查列表中是否包含特定的值,要判斷特定的值是否已包含在列表中,可使用關(guān)鍵字in。
python 的函數(shù)參數(shù)類型分為4種:
1.位置參數(shù):調(diào)用函數(shù)時(shí)根據(jù)函數(shù)定義的參數(shù)位置來(lái)傳遞參數(shù),位置參數(shù)也可以叫做必要參數(shù),函數(shù)調(diào)用時(shí)必須要傳的參數(shù)。
當(dāng)參數(shù)滿足函數(shù)必要參數(shù)傳參的條件,函數(shù)能夠正常執(zhí)行:
add(1,2) #兩個(gè)參數(shù)的順序必須一一對(duì)應(yīng),且少一個(gè)參數(shù)都不可以
當(dāng)我們運(yùn)行上面的程序,輸出:
當(dāng)函數(shù)需要兩個(gè)必要參數(shù),但是調(diào)用函數(shù)只給了一個(gè)參數(shù)時(shí),程序會(huì)拋出異常
add(1)
當(dāng)我們運(yùn)行上面的程序,輸出:
當(dāng)函數(shù)需要兩個(gè)必要參數(shù),但是調(diào)用函數(shù)只給了三個(gè)參數(shù)時(shí),程序會(huì)拋出異常
add(1,2,3)
當(dāng)我們運(yùn)行上面的程序,輸出
2.關(guān)鍵字參數(shù):用于函數(shù)調(diào)用,通過(guò)“鍵-值”形式加以指定??梢宰尯瘮?shù)更加清晰、容易使用,同時(shí)也清除了參數(shù)的順序需求。
add(1,2) # 這種方式傳參,必須按順序傳參:x對(duì)應(yīng)1,y對(duì)應(yīng):2
add(y=2,x=1) #以關(guān)健字方式傳入?yún)?shù)(可以不按順序)
正確的調(diào)用方式
add(x=1, y=2)
add(y=2, x=1)
add(1, y=2)
以上調(diào)用方式都是允許的,能夠正常執(zhí)行
錯(cuò)誤的調(diào)用方式
add(x=1, 2)
add(y=2, 1)
以上調(diào)用都會(huì)拋出SyntaxError 異常
上面例子可以看出:有位置參數(shù)時(shí),位置參數(shù)必須在關(guān)鍵字參數(shù)的前面,但關(guān)鍵字參數(shù)之間不存在先后順序的
3.默認(rèn)參數(shù):用于定義函數(shù),為參數(shù)提供默認(rèn)值,調(diào)用函數(shù)時(shí)可傳可不傳該默認(rèn)參數(shù)的值,所有位置參數(shù)必須出現(xiàn)在默認(rèn)參數(shù)前,包括函數(shù)定義和調(diào)用,有多個(gè)默認(rèn)參數(shù)時(shí),調(diào)用的時(shí)候,既可以按順序提供默認(rèn)參數(shù),也可以不按順序提供部分默認(rèn)參數(shù)。當(dāng)不按順序提供部分默認(rèn)參數(shù)時(shí),需要把參數(shù)名寫上
默認(rèn)參數(shù)的函數(shù)定義
上面示例第一個(gè)是正確的定義位置參數(shù)的方式,第二個(gè)是錯(cuò)誤的,因?yàn)槲恢脜?shù)在前,默認(rèn)參數(shù)在后
def add1(x=1,y) 的定義會(huì)拋出如下異常
默認(rèn)參數(shù)的函數(shù)調(diào)用
注意:定義默認(rèn)參數(shù)默認(rèn)參數(shù)最好不要定義為可變對(duì)象,容易掉坑
不可變對(duì)象:該對(duì)象所指向的內(nèi)存中的值不能被改變,int,string,float,tuple
可變對(duì)象,該對(duì)象所指向的內(nèi)存中的值可以被改變,dict,list
這里只要理解一下這個(gè)概念就行或者自行百度,后續(xù)會(huì)寫相關(guān)的專題文章講解
舉一個(gè)簡(jiǎn)單示例
4.可變參數(shù)區(qū)別:定義函數(shù)時(shí),有時(shí)候我們不確定調(diào)用的時(shí)候會(huì)多少個(gè)參數(shù),j就可以使用可變參數(shù)
可變參數(shù)主要有兩類:
*args: (positional argument) 允許任意數(shù)量的可選位置參數(shù)(參數(shù)),將被分配給一個(gè)元組, 參數(shù)名前帶*,args只是約定俗成的變量名,可以替換其他名稱
**kwargs:(keyword argument) 允許任意數(shù)量的可選關(guān)鍵字參數(shù),,將被分配給一個(gè)字典,參數(shù)名前帶**,kwargs只是約定俗成的變量名,可以替換其他名稱
*args 的用法
args 是用來(lái)傳遞一個(gè)非鍵值對(duì)的可變數(shù)量的參數(shù)列表給函數(shù)
語(yǔ)法是使用 符號(hào)的數(shù)量可變的參數(shù); 按照慣例,通常是使用arg這個(gè)單詞,args相當(dāng)于一個(gè)變量名,可以自己定義的
在上面的程序中,我們使用* args作為一個(gè)可變長(zhǎng)度參數(shù)列表傳遞給add()函數(shù)。 在函數(shù)中,我們有一個(gè)循環(huán)實(shí)現(xiàn)傳遞的參數(shù)計(jì)算和輸出結(jié)果。
還可以直接傳遞列表或者數(shù)組的方式傳遞參數(shù),以數(shù)組或者列表方式傳遞參數(shù)名前面加(*) 號(hào)
理解* * kwargs
**kwargs 允許你將不定長(zhǎng)度的鍵值對(duì), 作為參數(shù)傳遞給函數(shù),這些關(guān)鍵字參數(shù)在函數(shù)內(nèi)部自動(dòng)組裝為一個(gè)dict
下篇詳細(xì)講解 *args, **kwargs 的參數(shù)傳遞和使用敬請(qǐng)關(guān)注
1.把range全部換成xrange
2.生成器,如 list=(item for item in fp)
3.利用psyco庫(kù),提高函數(shù)和類的運(yùn)行效率。
4.字符串拼接:盡量少用“+”的方式,而采用''.join ,還有"%s"%i這樣賦值的手段
5.函數(shù)的開(kāi)銷很大。盡量把循環(huán)放在函數(shù)內(nèi)進(jìn)行。而不要讓每次迭代都調(diào)用函數(shù)。
6.“前提工作”先做好,比如該賦值,該拼接的,然后再引入到函數(shù)中,或者進(jìn)行下面的循環(huán)。
7.盡量使用內(nèi)置方法,因?yàn)閮?nèi)置的是C寫的,效率肯定高很多
8.每當(dāng)要對(duì)序列中的內(nèi)容進(jìn)行循環(huán)處理時(shí),就應(yīng)當(dāng)嘗試用列表解析來(lái)代替它,如:[i for i in xrang(10) if i%2==0]
9.學(xué)會(huì)使用itertools模塊。當(dāng)python中添加了迭代器后,就為常見(jiàn)模式提供了一個(gè)新的模塊,因?yàn)樗且訡語(yǔ)言編寫,所以提供了最高效的迭代器。
--多記錄一些。列表,字符串,字典,xrange,類文件對(duì)象,這些都是可迭代對(duì)象,換句話說(shuō),都可以直接用在for循環(huán)中進(jìn)行迭代,如for item in open('1.txt')
--直接使用速度會(huì)快。另外,我對(duì)比了itertools里工具和xrange,比如都循環(huán)100000次打印數(shù)字,使用islice(count(),100000)均要比xrange(100000)快
--而xrange還要比range快。
10.用列表解析取代for循環(huán)。列表解析的效率等于或高于map。
11.垃圾回收機(jī)制,會(huì)對(duì)列表的操作有重大影響,如列表的append,或者列表解析。import gc,然后在數(shù)據(jù)載入模塊前gc.disable(),結(jié)束后再gc.enable()。
當(dāng)前標(biāo)題:python條件函數(shù) python條件與
地址分享:http://vcdvsql.cn/article44/doodhee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、Google、虛擬主機(jī)、建站公司、App開(kāi)發(fā)、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)