2020新看點:Python 3.8六大新功能
近期,Python 3.8已經發布。 不過別擔心,小芯已經為你總結好了Python 3.8中每個新手都應該掌握的6大新功能。 |
IT業日新月異,落後的Python 2將在2020年逐漸被淘汰。
2019年,隨著資料科學的興起,Python成為了最熱門的程式語言。 儘管如此,面對浩如煙海的知識,應接不暇也是正常的。語法不斷變化,每次Python更新,都會新增許多新的表達。有很多功能小芯只恨自己知道得太晚了。 如果讀者也感同身受,這裡有一個壞訊息:近期,Python 3.8已經發布。 不過別擔心,小芯已經為你總結好了Python 3.8中每個新手都應該掌握的6大新功能。
使用新的importlib.metadata模組可以讀取第三方包的後設資料。可以在 指令碼包中獲取版本號。
現在,字典可以用resersed( )在反轉插入排序中實現迭代了。
由於Python的實現問題,以前在Finally子句中新增continue語句是不合法的。現在這一問題已不復存在。
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函式只接受兩種引數。
位置引數:根據函式定義的引數位置來傳遞引數。
關鍵字引數:使用關鍵字來指定引數。
在下例中,引數a和引數b的值可由位置引數或關鍵字引數確定,非常靈活。
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用語法/和*作區分,提供了指定接受位置引數或關鍵字引數的方法。注意:語法*並不是在Python 3.8中才出現。
在下面的例子中,開頭的兩個引數a和b只接受位置引數,中間的c和d可接受位置引數或關鍵字引數,最後的e和f只接受關鍵字引數。
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
為什麼要犧牲靈活性呢?如果引數名稱隨意且無用,就應該排除關鍵字引數。如果預計函式中的引數名可能會發生變化,指定引數型別能避免程式碼崩潰,也能讓程式碼更加強大。
賦值表示式,又稱海象運算子,是以:=為語法形式的新運算子,它能把較大表示式中的某部分賦值給變數。這無疑是Python 3.8中討論最多的新功能了。
來看個例子: 賦值表示式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 {b}.') # The square of 6 is 36.
有時賦值表示式能讓程式碼更加簡潔可讀。但是,請注意不要濫用賦值表示式,因為在某些情況下它會讓程式碼更加難懂。
# DON'T DO THIS! a = 5 d = [b := a+1, a := b-1, a := a*2]
其他(老)程式語言中也有賦值表示式,希望改用Python的程式設計師們能(多)用這一新功能。在賦值表示式氾濫之前趕快掌握它吧。
Python f字串改變了遊戲規則。F字串是格式化字串的語法,簡潔且易讀。利用語法f'{expr}',在引號前加上f,將表示式用大括號括住,就能夠將表示式插入字串。
Python更新之後,等於號“=”能夠在f字串f'{expr=}'語法中作為格式限定符使用。輸出的字串為變數名=變數值,如下所示:
# DON'T DO THIS! a = 5 d = [b := a+1, a := b-1, a := a*2]
出於編制檔案或除錯 (Debug) 的需要,常需要指明變數值。F字串使得除錯(debug)易如反掌。
當然,在投身Python 3.8程式設計之前,你需要掌握Python基本功能(必不可少)。
這就是Python的6大新功能,每個Python新手都能從中獲益。
原文地址: https://www.linuxprobe.com/python-3-8-2020.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2679735/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python 3.8六大新功能Python
- Python 3.8新功能盤點:更快,更簡潔,更一致,更現代化Python
- Python 3.8 新特性全面解讀Python
- SAP Hybris Commerce 6.0釋出,六大革新功能搶鮮看
- Python 3.8 新功能-來自社群翻譯貼-個人改進程式碼優化版Python優化
- 你應該知道的Python3.6、3.7、3.8新特性Python
- “網路新聞管理新規”:六大要點需要關注
- Python 3.8與普通程式設計師有關的幾個新特性Python程式設計師
- NET5 ORM 六大新功能 - SqlSugar 5.0.2.7ORMSqlSugar
- 3.8
- 如何在 Ubuntu 上安裝 Python 3.8UbuntuPython
- windows下python3.8安裝_01WindowsPython
- 看新聞時碰到生僻詞怎麼辦?BBC News的新功能值得借鑑
- CentOS 全新編譯安裝 Python3.8CentOS編譯Python
- Python3.8 安裝虛擬環境Python
- Pycharm安裝dlib庫(Python3.8)PyCharmPython
- CHITEC 2020|美創醫療資料安全、資料治理新看點,先睹為快
- 騰訊雲遊戲三大看點:直播新玩法、Party新內容,手柄新硬體遊戲
- 16 英寸 MacBook Pro 2021有哪些新看點Mac
- Redis 7.0 新功能新特性總覽Redis
- centos7中python2升級python3.8教程CentOSPython
- Python 語言及其應用 3.8 練習 (8) (9)Python
- Fedora 31 已經為 Python 3.8 做好了準備Python
- Shared_memory從Python3.8移植到Python3.7/3.6Python
- 解決 macOS 下 Python 3.8 安裝 mysqlclient 的問題MacPythonMySqlclient
- 3.8打卡
- 升級centos7自帶的Python2.7到Python3.8CentOSPython
- 2020年度移動遊戲買量創意玩法大盤點,6大看點!遊戲
- 分散式儲存的六大優點分散式
- 新華三六大計算創新技術“成就智慧計算”
- .Net Core3 新特性/新功能 16條
- 盤點Linux作業系統的六大特點!Linux作業系統
- 小貸新規六大亮點值得期待,網際網路廠商有機會了
- Python-python3.8安裝turtle的各種問題及解決方案Python
- ubuntu18.4 升級Python到3.8版本UbuntuPython
- 3.8開課部落格
- Windows 11,一個新功能,一場新屠殺Windows
- [應用案例]【夢雲社群】移動時代社群新亮點,看這裡