千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > Python培訓(xùn)分享:Python新版本中的6個(gè)新特性

Python培訓(xùn)分享:Python新版本中的6個(gè)新特性

來(lái)源:千鋒教育
發(fā)布人:qyf
時(shí)間: 2021-11-22 17:39:00 1637573940

  Python在幾年做了一個(gè)全面的升級(jí),此次Python升級(jí)中有6個(gè)新特性,本期小編為大家介紹的Python培訓(xùn)教程就是關(guān)于介紹Python新版本中的6個(gè)新特性的,來(lái)看看下面的詳細(xì)介紹。

千鋒Python培訓(xùn)爬蟲(chóng)教程2

  Python培訓(xùn)分享:Python 3.10 有幾個(gè)新的很酷的功能,使得使用 Python 成為一種更好的體驗(yàn)。

  更清楚的錯(cuò)誤追蹤

  作為一個(gè)每天寫(xiě)Python 、教Python 的人,我深知遇到語(yǔ)法錯(cuò)誤的挫敗感。盡管一旦你掌握了Python和編程,就很容易修復(fù)語(yǔ)法錯(cuò)誤,但是我們還是希望錯(cuò)誤消息能給我們更好的提示,以幫助我們更好地定位錯(cuò)誤并節(jié)省調(diào)試時(shí)間。

  在Python 3.10中,兩個(gè)新特性使得我們可以更好地處理錯(cuò)誤,他們是更清楚地錯(cuò)誤消息以及精確的行號(hào)。比如,我們有以下代碼,包含一個(gè)字典和一個(gè)函數(shù)。但是我們忘記了字典結(jié)束的花括號(hào)“}”。

  1 some_dict =

  2 {1: "jack",

  3 2: "john",

  4 3: "james" ,

  5 a_results = a_useful_function()

  在之前的Python版本中,錯(cuò)誤信息如下:

  1 File "amazing_code.py",

  2 line 3 a_results = a_useful_function()

  3 ^ SyntaxError: invalid syntax # 無(wú)效的語(yǔ)法

  但是,隨著新的錯(cuò)誤消息和行號(hào)的改進(jìn),新的錯(cuò)誤消息將包含更好的信息,例如準(zhǔn)確的錯(cuò)誤類(lèi)型和精確的行號(hào)。

  1 File "amazing_code.py",

  2 line 1 expected =

  3 {1: "jack",

  4 2: "john",

  5 3: "james" ,

  6 ^ SyntaxError: '{' was never closed # 未關(guān)閉的 “ { ”

  這一新特性將有助于加快調(diào)試速度,并減少人們開(kāi)始學(xué)習(xí) Python 的挫敗感。

  結(jié)構(gòu)化模式匹配

  如果您使用過(guò) C++ 等其他編程語(yǔ)言,您可能希望 Python 有 switch 語(yǔ)句,這樣您就不必經(jīng)歷冗長(zhǎng)的 if、elif、elif、…、else 語(yǔ)句。好吧,Python 3.10 的新特性之一是添加了結(jié)構(gòu)化模式匹配,或者換句話(huà)說(shuō),具有以下語(yǔ)法的 switch、case 語(yǔ)句。

  1 match subject:

  2 case:

  3 case:

  4 case:

  5 case _: <action_default>

  新的類(lèi)型聯(lián)合運(yùn)算符

  盡管 Python 是一種動(dòng)態(tài)類(lèi)型的編程語(yǔ)言,但還是有一些方法可以使它的某些部分成為靜態(tài)類(lèi)型的。比如,你正在寫(xiě)一個(gè)函數(shù),而屬性的類(lèi)型對(duì)于函數(shù)的內(nèi)部通信很重要。在之前的版本中,你可以指定類(lèi)型如下:

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

  但是,如果你要接受兩種類(lèi)型,你就需要使用Union關(guān)鍵字。

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

  在新版Python中,你可以用“|”運(yùn)算符替代Union關(guān)鍵字,這樣會(huì)更直接。

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

  其他很酷的特性

  4.1 更嚴(yán)格的zip

  Python的樂(lè)趣之一就是zip()函數(shù)。它是一個(gè)內(nèi)置函數(shù),允許你同時(shí)遍歷多個(gè)序列,并組合其返回值。在之前的版本中,你可以對(duì)不同長(zhǎng)度的序列使用zip。但是,現(xiàn)在有了一個(gè)新的參數(shù),strict,用來(lái)檢查可遍歷對(duì)象是否長(zhǎng)度一致。

  4.2 自動(dòng)文本編碼

  作為程序員,我們會(huì)說(shuō),“他在我的電腦上能運(yùn)行的”。代碼在一臺(tái)機(jī)器上運(yùn)行而不在另一臺(tái)機(jī)器上運(yùn)行的原因有很多;文本編碼可能會(huì)導(dǎo)致此類(lèi)錯(cuò)誤。

  在以前的 Python 版本中,如果沒(méi)有明確說(shuō)明編碼類(lèi)型,首選的本地編碼可能會(huì)導(dǎo)致代碼在其他機(jī)器上失敗。在 Python 3.10 中,可以激活警告以通知用戶(hù)打開(kāi)文本文件沒(méi)有指定編碼類(lèi)型。

  4.3 異步迭代

  異步編程是一個(gè)強(qiáng)大而先進(jìn)的編程范式,它從 3.5 版開(kāi)始就成為 Python 的一部分。在Python 3.10,有兩個(gè)新的異步的內(nèi)置功能aiter()和anext()使你的代碼更易讀。

  以上就是為大家介紹的關(guān)于“Python新版本中的6個(gè)新特性”的內(nèi)容,Python的每個(gè)版本,都帶來(lái)了不起的新特性。這些特性是大部分Python程序員需要的,能讓我們高效寫(xiě)Python代碼。總之,它們讓人們寫(xiě)代碼更容易。

  如果大家想要學(xué)習(xí)python或者是正在學(xué)習(xí)python知識(shí),但是苦于沒(méi)有人指導(dǎo),那么可以添加我們的qq群-790693323,點(diǎn)擊添加(加群備注:領(lǐng)資料)不僅可以領(lǐng)取python學(xué)習(xí)資料,并且群內(nèi)還有專(zhuān)業(yè)的老師定期解答大家的問(wèn)題,想要學(xué)習(xí)python的小伙伴,不要錯(cuò)過(guò)。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專(zhuān)屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
PHP數(shù)組具的特性有哪些?

一、有序集合PHP數(shù)組是一個(gè)有序的數(shù)據(jù)集合,它可以存儲(chǔ)多個(gè)值,并使用索引來(lái)訪問(wèn)這些值。索引可以是數(shù)字或字符串,允許你以靈活的方式組織和訪...詳情>>

2023-10-13 23:46:55
C語(yǔ)言中定義與聲明的含義是什么?

一、定義的含義在C語(yǔ)言中,定義是指為變量、函數(shù)或類(lèi)型分配存儲(chǔ)空間并指定其屬性和初始值的過(guò)程。定義的主要含義如下:分配存儲(chǔ)空間:定義一個(gè)...詳情>>

2023-10-13 23:32:41
APP開(kāi)發(fā)中常用的開(kāi)發(fā)語(yǔ)言都有什么?

一、JavaJava是一種廣泛使用的開(kāi)發(fā)語(yǔ)言,尤其在Android應(yīng)用開(kāi)發(fā)中得到了廣泛應(yīng)用。Java具有面向?qū)ο蟮奶匦?,可以?shí)現(xiàn)復(fù)雜的應(yīng)用邏輯和交互效果...詳情>>

2023-10-13 23:29:28
Python的自動(dòng)化測(cè)試框架有哪些?

一、unittestunittest是Python內(nèi)置的測(cè)試框架,它受到Java的JUnit框架的啟發(fā)。unittest提供了一個(gè)面向?qū)ο蟮木幊棠P停试S開(kāi)發(fā)人員編寫(xiě)測(cè)試用...詳情>>

2023-10-13 23:06:20
Web前端開(kāi)發(fā)工具有哪些?

一、代碼編輯器代碼編輯器是Web前端開(kāi)發(fā)的基礎(chǔ)工具之一,用于編寫(xiě)、編輯和修改計(jì)算機(jī)代碼。它通常支持多種編程語(yǔ)言,并提供了一些便捷的功能,...詳情>>

2023-10-13 22:58:11
快速通道