Python 3.8 新功能【新手必學】


 
 Python 3.8 是 Python 編程語言的最新主要版本, 它包含許多新功能和優化。
Python
 

 

Python 3.8

Python 3.8 的一些新功能包括:

1. 海象運算符

 

Python
 

 

PS:很多人在學習Python的過程中,往往因為沒有好的教程或者沒人指導從而導致自己容易放棄,為此我建了個Python交流.裙 :一久武其而而流一思(數字的諧音)轉換下可以找到了,里面有最新Python教程項目可拿,不懂的問題多跟里面的人交流,都會解決哦!

在這個新版本中,我們有一種新的賦值運算符,稱為 Walrus 運算符 := 。該運算符的優點是可以在一行中設置和返回變量。例如:

Code: sample_data = [ {“id”: 1, “name”: “Srijan”}, {“id”: 2, “name”: “Abhishek”}, {“id”: 3, “name”: “Dilip”}, {“id”: 4, “name”: “Vishal”}, {“id”: 4, “name”: None}, ] print(“With Python 3.8 Walrus Operator:”) for entry in sample_data: if name := entry.get(“name”): print(f’Found name = {name}’) print(“Without Walrus operator:”) for entry in sample_data: name = entry.get(“name”) if name: print(f’Found name = {name}’)Output: With Python 3.8 Walrus Operator: Found name = “Srijan” Found name = “Abhishek” Found name = “Dilip” Found name = “Vishal” Without Walrus operator: Found name = “Srijan” Found name = “Abhishek” Found name = “Dilip” Found name = “Vishal”

2. 僅限位置形參

現在,在定義方法的參數時可以使用特殊的標記「/」,以指定該函數僅接受標記左側的位置參數。此處的「/」標記表示 x,y 和 z 的值只能在位置上傳遞,而不能使用關鍵字參數。

Code: def func1(x,y,z=None,/): r = x + y if z is not None: r -= z return r print(func1(2, 5)) #7 print(func1(2, 5, 3)) #4 print(func1(x=2, y=10)) #TypeError print(func1(2, 10, z=3)) #TypeError

3. f-string 支持「=」

現在,你可以在 f-string 中使用「=」運算符來獲取並打印值。
這意味着現在我們可以在 f-string 中執行算術運算了。

a=5 b=6 print(f'sum={a+b}') #11

4. * 新語法警告 **

Python 為缺少逗號引入了新的警告消息,在這個新版本中的錯誤消息。解釋器會拋出這個有用的警告信息,這將有助於用戶快速找到自己的錯誤。

list1=[[0,1] [2,3]] #這將給出缺少逗號和TypeError的SyntaxWarning。

 

Python
 

 

SyntaxWarning

5. 可逆字典

reversed() 現在可用於字典。Python 已經開始從 3.7 開始保留 Dictionary 中插入鍵的順序,但現在在 3.8 中,您也可以反轉它。

dict1={'a':5,'b':6} print(dict1) #{'a': 5, 'b': 6} print(list(reversed(dict1))) ['b', 'a']

6. 多處理共享內存

使用多處理,可以跨 Python 的所有實例全局共享和訪問數據。這將大大加快數據的保存、存儲、訪問和傳輸。

7. 創建 pickle 文件的新協議

Python 中的 Pickle 主要用於序列化和反序列化數據,以及可以在其他地方使用的代碼。在這個新版本中,Python 將默認使用 Protocol 4,您也可以將 Protocol 5 與之一起使用。這將使 Api 得到充分利用,從而提高性能。
對於在數據科學領域工作的人來說,這是一個令人興奮的消息,因為即使在空間較低或有限的服務器上,這也能很好地與 Django 和 Flask 一起工作。

8. 改進的 CPython

Python 還表示,他們已經改進了 Python 的 C 引擎。這將使 Python 中的優化變得容易。數據科學領域的人們已經遇到了很多 Python 或 Jupyter 環境由於大量數據而崩潰的例子。隨着 CPython 模塊的改進,用戶可以期望在處理和查詢數據時獲得更好的結果。

9. 性能改進

此版本增加了一些性能,加快了解釋器的速度。其中一些是:

  • operator.itemgetter() 現在快了 33%。
  • Field lookups in collections.namedtuple() 中的字段查找現在快了兩倍多。
  • 列表構造函數現在創建的列表平均小 12%。
  • uuid.UUID 現在使用插槽來減少內存占用。
  • 一些簡單的內置和方法的調用現在快了 20-50%。

總結

很多人在學習Python的過程中,往往因為沒有好的教程或者沒人指導從而導致自己容易放棄,為此我建了個Python交流.裙 :一久武其而而流一思(數字的諧音)轉換下可以找到了,里面有最新Python教程項目可拿,不懂的問題多跟里面的人交流,都會解決哦!

本文的文字及圖片來源於網絡加上自己的想法,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯系我們以作處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM