近期,Python 3.8已經(jīng)發(fā)布。 不過別擔(dān)心,小芯已經(jīng)為你總結(jié)好了Python 3.8中每個新手都應(yīng)該掌握的6大新功能。 |
IT業(yè)日新月異,落后的Python 2將在2020年逐漸被淘汰。
公司專注于為企業(yè)提供成都網(wǎng)站建設(shè)、做網(wǎng)站、微信公眾號開發(fā)、商城網(wǎng)站定制開發(fā),成都小程序開發(fā),軟件按需開發(fā)網(wǎng)站等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。憑借多年豐富的經(jīng)驗,我們會仔細(xì)了解各客戶的需求而做出多方面的分析、設(shè)計、整合,為客戶設(shè)計出具風(fēng)格及創(chuàng)意性的商業(yè)解決方案,創(chuàng)新互聯(lián)建站更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務(wù)。
2019年,隨著數(shù)據(jù)科學(xué)的興起,Python成為了最熱門的程序語言。 盡管如此,面對浩如煙海的知識,應(yīng)接不暇也是正常的。語法不斷變化,每次Python更新,都會添加許多新的表達(dá)。有很多功能小芯只恨自己知道得太晚了。 如果讀者也感同身受,這里有一個壞消息:近期,Python 3.8已經(jīng)發(fā)布。 不過別擔(dān)心,小芯已經(jīng)為你總結(jié)好了Python 3.8中每個新手都應(yīng)該掌握的6大新功能。
使用新的importlib.metadata模塊可以讀取第三方包的元數(shù)據(jù)。可以在 腳本包中獲取版本號。
現(xiàn)在,字典可以用resersed( )在反轉(zhuǎn)插入排序中實現(xiàn)迭代了。
由于Python的實現(xiàn)問題,以前在Finally子句中添加continue語句是不合法的?,F(xiàn)在這一問題已不復(fù)存在。
for i inrange(2): try: print(i) finally: print('A sentence.') continue print('This never shows.') # Python <= 3.7 >>SyntaxError: 'continue'not supported inside 'finally' clause # Python 3.8 >>0 A sentence. 1 A sentence.
Python函數(shù)只接受兩種參數(shù)。
位置參數(shù):根據(jù)函數(shù)定義的參數(shù)位置來傳遞參數(shù)。
關(guān)鍵字參數(shù):使用關(guān)鍵字來指定參數(shù)。
在下例中,參數(shù)a和參數(shù)b的值可由位置參數(shù)或關(guān)鍵字參數(shù)確定,非常靈活。
def my_func(a, b=1): return a+bmy_func(5,2) # both positional arguments my_func(a=5,b=2) # both keyword arguments
新版本的Python用語法/和*作區(qū)分,提供了指定接受位置參數(shù)或關(guān)鍵字參數(shù)的方法。注意:語法*并不是在Python 3.8中才出現(xiàn)。
在下面的例子中,開頭的兩個參數(shù)a和b只接受位置參數(shù),中間的c和d可接受位置參數(shù)或關(guān)鍵字參數(shù),最后的e和f只接受關(guān)鍵字參數(shù)。
defmy_func(a, b, /, c, d, *, e, f): return a+b+c+d+e+f my_func(1,2,3,4,5,6) # invalid as e and f are keyword-only my_func(a=1,b=2,3,4,e=5,f=6) # invalid as a and b are position-only my_func(1,2,c=3,4,e=5,f=6) # returns 21 my_unc(1,2,c=3,d=4,e=5,f=6) # returns 21
為什么要犧牲靈活性呢?如果參數(shù)名稱隨意且無用,就應(yīng)該排除關(guān)鍵字參數(shù)。如果預(yù)計函數(shù)中的參數(shù)名可能會發(fā)生變化,指定參數(shù)類型能避免代碼崩潰,也能讓代碼更加強大。
賦值表達(dá)式,又稱海象運算符,是以:=為語法形式的新運算符,它能把較大表達(dá)式中的某部分賦值給變量。這無疑是Python 3.8中討論最多的新功能了。
來看個例子: 賦值表達(dá)式b := a**2 將a的平方,也就是36,賦值給b,然后檢查b的值是否大于0。
a =6 # The following statement # assigns the value a ** 2 to variable b, # and then check if b > 0 is true if (b := a **2) >0: print(f'The square of {a} is .') # The square of 6 is 36.
有時賦值表達(dá)式能讓代碼更加簡潔可讀。但是,請注意不要濫用賦值表達(dá)式,因為在某些情況下它會讓代碼更加難懂。
# DON'T DO THIS! a = 5 d = [b := a+1, a := b-1, a := a*2]
其他(老)程序語言中也有賦值表達(dá)式,希望改用Python的程序員們能(多)用這一新功能。在賦值表達(dá)式泛濫之前趕快掌握它吧。
Python f字符串改變了游戲規(guī)則。F字符串是格式化字符串的語法,簡潔且易讀。利用語法f'{expr}',在引號前加上f,將表達(dá)式用大括號括住,就能夠?qū)⒈磉_(dá)式插入字符串。
Python更新之后,等于號“=”能夠在f字符串f'{expr=}'語法中作為格式限定符使用。輸出的字符串為變量名=變量值,如下所示:
# DON'T DO THIS! a = 5 d = [b := a+1, a := b-1, a := a*2]
出于編制文件或調(diào)試 (Debug) 的需要,常需要指明變量值。F字符串使得調(diào)試(debug)易如反掌。
當(dāng)然,在投身Python 3.8編程之前,你需要掌握Python基本功能(必不可少)。
這就是Python的6大新功能,每個Python新手都能從中獲益。
本文名稱:Python3.8六大新功能
網(wǎng)頁路徑:http://jinyejixie.com/article2/gpecoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站導(dǎo)航、手機網(wǎng)站建設(shè)、定制網(wǎng)站、營銷型網(wǎng)站建設(shè)、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)