Python 3.8 新功能大揭祕【新手必學】
最新版本的Python釋出了!今年夏天,Python 3.8釋出beta版本,在2019年10月14日,第一個正式版本已準備就緒。現在,我們都可以開始使用新功能並從最新改進中受益。
Python 3.8是Python語言的最新版本,它適合用於編寫指令碼、自動化以及機器學習和Web開發等各種任務。現在Python 3.8已經進入官方的beta階段,這個版本帶來了許多語法改變、記憶體共享、更有效的序列化和反序列化、改進的字典和更多新功能。
好了,正文開始,一起看看吧!
Python 3.8 是 Python 程式語言的最新主要版本, 它包含許多新功能和優化。
Python 3.8 的一些新功能包括:
1. 海象運算子
PS:很多人在學習Python的過程中,往往因為沒有好的教程或者沒人指導從而導致自己容易放棄,為此我建了個Python交流.裙 :一久武其而而流一思(數字的諧音)轉換下可以找到了,裡面有最新Python教程專案可拿,不懂的問題多跟裡面的人交流,都會解決哦!
在這個新版本中,我們有一種新的賦值運算子,稱為 Walrus 運算子:=
。該運算子的優點是可以在一行中設定和返回變數。例如:
sample_data = [ {“id”: 1,“name”: “Srijan”},{“id”: 2,“name”: “Abhishek”},{“id”: 3,“name”: “Dilip”},{“id”: 4,“name”: “Vishal”},“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 的值只能在位置上傳遞,而不能使用關鍵字引數。
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。
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教程專案可拿,不懂的問題多跟裡面的人交流,都會解決哦!
以上所述是小編給大家介紹的Python 3.8 新功能【新手必學】希望對大家有所幫助!