1. 程式人生 > 程式設計 >Python 3.8 新功能大揭祕【新手必學】

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 新功能大揭祕【新手必學】

Python 3.8 的一些新功能包括:

1. 海象運算子

Python 3.8 新功能大揭祕【新手必學】

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。

Python 3.8 新功能大揭祕【新手必學】

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 新功能【新手必學】希望對大家有所幫助!