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