python基礎(chǔ)五

匿名函數(shù)

例如:

add = lambda x : x+1

add(5) # 6

add:函數(shù)名

lambda:定義匿名函數(shù)的關(guān)鍵字

x參數(shù)

:格式吧

x+1:返回值

當(dāng)需要多個(gè)參數(shù)時(shí):在x后加上,加參數(shù)即可。

存在的意義:有些函數(shù)很簡(jiǎn)單,避免我們麻煩的去定義。

內(nèi)置函數(shù)

常用print()#輸出,input()#交互輸入,open()#文件操作等都不說(shuō)了。

len()#返回長(zhǎng)度,dir()#查看方法,help()#查看幫助,當(dāng)不知道調(diào)用該函數(shù)的參數(shù)時(shí),可以help()一下。

callable(名字)#查看該名字是否可以被調(diào)用。同時(shí)可以被調(diào)用也就是函數(shù),同理可以檢測(cè)是否是函數(shù),返回bool類(lèi)型。

id()#返回該對(duì)象的內(nèi)存地址。

hash()#可哈希就是不可變對(duì)象,不可哈希就是可變對(duì)象。返回計(jì)算出的一個(gè)哈希值。

思考:字典取值快的原因?

我們都知道字典的key值是不可變對(duì)象,也就是可哈希對(duì)象,內(nèi)部可以使用hash計(jì)算key的哈希值,將value存儲(chǔ)在這個(gè)哈希值的內(nèi)置地址,當(dāng)取數(shù)據(jù)的時(shí)候,直接拿內(nèi)存地址,這樣就很快。

exec()、eval()#將字符串轉(zhuǎn)化為python代碼執(zhí)行。exec常用于處理流程內(nèi)代碼,eval常用于處理計(jì)算類(lèi)。

示例:

exec("print(name)") #name

eval("print(name)") #name

區(qū)別:exec沒(méi)有返回值,eval有返回值。

示例:

print(exec('1+2+3+4+5')) #輸出為空

print(eval('1+2+3+4+5')) #15

compile()#編譯成exec執(zhí)行或eval執(zhí)行,參數(shù)1:如果是在本地讀取文本就填寫(xiě)該文本,參數(shù)2:如果是在文件中讀取內(nèi)容,就填寫(xiě)文件名,不是就填'',參數(shù)3:編譯成eval或exec執(zhí)行。

示例:

code = 'print(123456789)'

com = compile(code,'','exec')

exec(com)

另:當(dāng)code中存在交互類(lèi)代碼時(shí),寫(xiě)成:

code = 'name = input("輸入你的姓名:")'

com = compile(code,'','single')

exec(com)

print(name)

雖然修改成single,但是執(zhí)行還是使用exec。

bin()#轉(zhuǎn)換為二進(jìn)制。oce()轉(zhuǎn)換為八進(jìn)制。hex()轉(zhuǎn)換為十六進(jìn)制

abs()#絕對(duì)值。

divmod():

print(divmod(10,3))#(3,1)也就是10除以3,得到的第一個(gè)值是商,第二個(gè)值為余數(shù)。

round():round(5.213123,3)#5.213會(huì)四舍五入。

pow()#冪運(yùn)算:pow(2,3)#8,pow(2,2,3)#1,2的2次方除以3取余。

sum()#求和。mix()#求最小值。max()#求最大值。

reversed(),反轉(zhuǎn)(倒敘),返回一個(gè)新的對(duì)象變成迭代器。

all()#print([0,'123456'])#False,0返回False,一假必假。

any()#print([0,'123456'])#True,一真必真。

sorter()#排序:

list1 = [5,3,7,9,4]

list2 = sorted(list1)

print(list1)

print(list2)

#結(jié)果:

#[5,3,7,9,4]

#[3,4,5,7,9]

#返回一個(gè)新的列表,不改變?cè)斜韮?nèi)容。

zip():

示例:

name = ['張三','小花','李四']

sex = ['男','女','男']

#生成一一對(duì)應(yīng)的關(guān)系,zip返回的是一個(gè)迭代器。我們需要for循環(huán)取出。

for iter in zip(name,sex):

? ? print(i)

#結(jié)果:

#('張三','男')

#('小花','女')

#('李四','男')

#如果兩個(gè)數(shù)量不統(tǒng)一,以少的為準(zhǔn)。如果我的name多了一個(gè)王五,而沒(méi)有sex,就不會(huì)輸出王五。

另:zip中的參數(shù)還可以是多個(gè)。

filter():

示例:

def test(x):

? ? return x % 2 ==1

ret = filter(test,[1,2,3,4])

#ret 同樣返回的是迭代器。

for i in ret:

? ? print(i)

#結(jié)果:

#1

#3

#也就是將[1,2,3,4]中的值一個(gè)一個(gè)帶入到test中。

map():

示例:

ret = map(abs,[1,2,3,-4,-5])

for i in ret:

? ? print(i)

#結(jié)果:1,2,3,4,5

另:filter和map很相似,區(qū)別就是filter并沒(méi)有改變?cè)瓉?lái)的值,返回的是原本就有的值

map是修改了原來(lái)的值。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在我二十多年的生命旅程里,有很多的歌星明星出現(xiàn),他們才華橫溢,一如浩瀚的星光,個(gè)個(gè)都耀耀生輝。我也見(jiàn)證著他們一個(gè)個(gè)...
    中正恩澤閱讀 342評(píng)論 4 2
  • 這里是秘密花園,最好是沒(méi)有人發(fā)現(xiàn)。這里有紅背心知更鳥(niǎo),玫瑰叢林,我在這里歌唱,留下辛勤的汗水,在鐵鍬上寫(xiě)上我的夢(mèng),...
    天天楊閱讀 162評(píng)論 0 0
  • 恭喜付彩霞的麻麻在跟我同樣大的年紀(jì)生下了一個(gè)驚天地泣鬼神驚為天人驚世駭俗活潑可愛(ài)美麗善良大方努力勇敢聰明幽默富有...
    玲瓏骨lin閱讀 145評(píng)論 0 0

友情鏈接更多精彩內(nèi)容