函數(shù)等價(jià)于
為商水等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及商水網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、商水網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
def _not_divisible(n):
def _inner(x):
return x * n
return _inner
f = _not_divisible(5)中f返回的是一個(gè)函數(shù)
def _inner(x):
return x * 5
所以需要運(yùn)行這個(gè)函數(shù)f(3) -- 3*5 =15
map() 函數(shù)接受兩個(gè)參數(shù),一個(gè)是函數(shù),一個(gè)是可迭代對(duì)象(Iterable), map 將傳入的函數(shù)依次作用到可迭代對(duì)象的每一個(gè)元素,并把結(jié)果作為迭代器(Iterator)返回。
舉例說(shuō)明,有一個(gè)函數(shù) f(x)=x^2 ,要把這個(gè)函數(shù)作用到一個(gè)list [1,2,3,4,5,6,7,8,9] 上:
運(yùn)用簡(jiǎn)單的循環(huán)可以實(shí)現(xiàn):
運(yùn)用高階函數(shù) map() :
結(jié)果 r 是一個(gè)迭代器,迭代器是惰性序列,通過(guò) list() 函數(shù)讓它把整個(gè)序列都計(jì)算出來(lái)并返回一個(gè) list 。
如果要把這個(gè)list所有數(shù)字轉(zhuǎn)為字符串利用 map() 就簡(jiǎn)單了:
小練習(xí):利用 map() 函數(shù),把用戶輸入的不規(guī)范的英文名字變?yōu)槭鬃帜复髮懫渌懙囊?guī)范名字。輸入 ['adam', 'LISA', 'barT'] ,輸出 ['Adam', 'Lisa', 'Bart']
reduce() 函數(shù)也是接受兩個(gè)參數(shù),一個(gè)是函數(shù),一個(gè)是可迭代對(duì)象, reduce 將傳入的函數(shù)作用到可迭代對(duì)象的每個(gè)元素的結(jié)果做累計(jì)計(jì)算。然后將最終結(jié)果返回。
效果就是: reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
舉例說(shuō)明,將序列 [1,2,3,4,5] 變換成整數(shù) 12345 :
小練習(xí):編寫一個(gè) prod() 函數(shù),可以接受一個(gè) list 并利用 reduce 求積:
map() 和 reduce() 綜合練習(xí):編寫 str2float 函數(shù),把字符串 '123.456' 轉(zhuǎn)換成浮點(diǎn)型 123.456
filter() 函數(shù)用于過(guò)濾序列, filter() 也接受一個(gè)函數(shù)和一個(gè)序列, filter() 把傳入的函數(shù)依次作用于每個(gè)元素,然后根據(jù)返回值是 True 還是 False 決定保留還是丟棄該元素。
舉例說(shuō)明,刪除list中的偶數(shù):
小練習(xí):用 filter() 求素?cái)?shù)
定義一個(gè)篩選函數(shù):
定義一個(gè)生成器不斷返回下一個(gè)素?cái)?shù):
打印100以內(nèi)素?cái)?shù):
python內(nèi)置的 sorted() 函數(shù)可以對(duì)list進(jìn)行排序:
sorted() 函數(shù)也是一個(gè)高階函數(shù),還可以接受一個(gè) key 函數(shù)來(lái)實(shí)現(xiàn)自定義排序:
key 指定的函數(shù)將作用于list的每一個(gè)元素上,并根據(jù) key 函數(shù)返回的結(jié)果進(jìn)行排序.
默認(rèn)情況下,對(duì)字符串排序,是按照ASCII的大小比較的,由于'Z' 'a',結(jié)果,大寫字母Z會(huì)排在小寫字母a的前面。如果想忽略大小寫可都轉(zhuǎn)換成小寫來(lái)比較:
要進(jìn)行反向排序,不必改動(dòng)key函數(shù),可以傳入第三個(gè)參數(shù) reverse=True :
小練習(xí):假設(shè)我們用一組tuple表示學(xué)生名字和成績(jī): L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)] 。用sorted()對(duì)上述列表分別按c成績(jī)從高到低排序:
運(yùn)用匿名函數(shù)更簡(jiǎn)潔:
def 函數(shù)名():? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ?函數(shù)體? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ?return? 返回值? ? ? ? ? ? ? ? ? ? ? ? ? ??
def 函數(shù)名(非可選參數(shù),可選參數(shù)):
???函數(shù)體?
return 返回值
def 函數(shù)名(參數(shù),*b):
? ? 函數(shù)體
? ? return 返回值
函數(shù)名 = lambda 參數(shù) : 表達(dá)式
例1:f = lambda x , y? :? x + y? ? ? ? ? ? ? ? ? ? ? ??
調(diào)用:f(6 + 8)? ? ?輸出:14? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
例2:?f = lambda : "沒(méi)有參數(shù)的lambda函數(shù)!"
調(diào)用:?print(f())? ? 輸出: 沒(méi)有參數(shù)的lambda函數(shù)!
在Python 3.6之前,有兩種將Python表達(dá)式嵌入到字符串文本中進(jìn)行格式化的主要方法:%-formatting和str.format(),但是在使用過(guò)程中會(huì)發(fā)現(xiàn)它們的局限性。而Python 3.6之后出現(xiàn)f-Strings:一種改進(jìn)Python格式字符串的新方法。下面會(huì)介紹%-formatting、str.format()與f-Strings的區(qū)別:
寫個(gè)例子吧,需要安裝numpy數(shù)學(xué)庫(kù)
#!/usr/bin/python
import
numpy
as
np
#求解方程x^2+2x+1=0的根
#方程參數(shù)列表抽象成一下形式:
arg=[1,
2,
1]
#求解
np.roots(args)
運(yùn)行即可求解了,如果沒(méi)有實(shí)根會(huì)給虛根的結(jié)果
分享名稱:f函數(shù)python COUNTIF函數(shù)
標(biāo)題來(lái)源:http://aaarwkj.com/article48/docpjhp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、建站公司、網(wǎng)站營(yíng)銷、服務(wù)器托管、響應(yīng)式網(wǎng)站、網(wǎng)站排名
聲明:本網(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)