Python培訓分享:Python新版本中的6個新特性

千鋒教育qyf發表於2021-11-22

  Python在幾年做了一個全面的升級,此次Python升級中有6個新特性,本期小編為大家介紹的 Python培訓教程就是關於介紹Python新版本中的6個新特性的,來看看下面的詳細介紹。

千鋒Python培訓爬蟲教程2

  Python培訓分享:Python 3.10 有幾個新的很酷的功能,使得使用 Python 成為一種更好的體驗。

  更清楚的錯誤追蹤

  作為一個每天寫Python 、教Python 的人,我深知遇到語法錯誤的挫敗感。儘管一旦你掌握了Python和程式設計,就很容易修復語法錯誤,但是我們還是希望錯誤訊息能給我們更好的提示,以幫助我們更好地定位錯誤並節省除錯時間。

  在Python 3.10中,兩個新特性使得我們可以更好地處理錯誤,他們是更清楚地錯誤訊息以及精確的行號。比如,我們有以下程式碼,包含一個字典和一個函式。但是我們忘記了字典結束的花括號“}”。

  1 some_dict =

  2 {1: "jack",

  3 2: "john",

  4 3: "james" ,

  5 a_results = a_useful_function()

  在之前的Python版本中,錯誤資訊如下:

  1 File "amazing_code.py",

  2 line 3 a_results = a_useful_function()

  3 ^ SyntaxError: invalid syntax # 無效的語法

  但是,隨著新的錯誤訊息和行號的改進,新的錯誤訊息將包含更好的資訊,例如準確的錯誤型別和精確的行號。

  1 File "amazing_code.py",

  2 line 1 expected =

  3 {1: "jack",

  4 2: "john",

  5 3: "james" ,

  6 ^ SyntaxError: '{' was never closed # 未關閉的 “ { ”

  這一新特性將有助於加快除錯速度,並減少人們開始學習 Python 的挫敗感。

  結構化模式匹配

  如果您使用過 C++ 等其他程式語言,您可能希望 Python 有 switch 語句,這樣您就不必經歷冗長的 if、elif、elif、…、else 語句。好吧,Python 3.10 的新特性之一是新增了結構化模式匹配,或者換句話說,具有以下語法的 switch、case 語句。

  1 match subject:

  2 case:

  3 case:

  4 case:

  5 case _: <action_default>

  新的型別聯合運算子

  儘管 Python 是一種動態型別的程式語言,但還是有一些方法可以使它的某些部分成為靜態型別的。比如,你正在寫一個函式,而屬性的型別對於函式的內部通訊很重要。在之前的版本中,你可以指定型別如下:

  1 def func(num: int) -> int: return num + 5

  但是,如果你要接受兩種型別,你就需要使用Union關鍵字。

  1 def func(num: Union[int, float]) -> Union[int, float]: return num + 5

  在新版Python中,你可以用“|”運算子替代Union關鍵字,這樣會更直接。

  1 def func(num: int | float) -> int | float: return num + 5

  其他很酷的特性

  4.1 更嚴格的zip

  Python的樂趣之一就是zip()函式。它是一個內建函式,允許你同時遍歷多個序列,並組合其返回值。在之前的版本中,你可以對不同長度的序列使用zip。但是,現在有了一個新的引數,strict,用來檢查可遍歷物件是否長度一致。

  4.2 自動文字編碼

  作為程式設計師,我們會說,“他在我的電腦上能執行的”。程式碼在一臺機器上執行而不在另一臺機器上執行的原因有很多;文字編碼可能會導致此類錯誤。

  在以前的 Python 版本中,如果沒有明確說明編碼型別,首選的本地編碼可能會導致程式碼在其他機器上失敗。在 Python 3.10 中,可以啟用警告以通知使用者開啟文字檔案沒有指定編碼型別。

  4.3 非同步迭代

  非同步程式設計是一個強大而先進的程式設計正規化,它從 3.5 版開始就成為 Python 的一部分。在Python 3.10,有兩個新的非同步的內建功能aiter()和anext()使你的程式碼更易讀。

  以上就是為大家介紹的關於“Python新版本中的6個新特性”的內容,Python的每個版本,都帶來了不起的新特性。這些特性是大部分Python程式設計師需要的,能讓我們高效寫Python程式碼。總之,它們讓人們寫程式碼更容易。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996644/viewspace-2843517/,如需轉載,請註明出處,否則將追究法律責任。

相關文章