溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python 3.9版本有哪些新功能

發(fā)布時間:2021-11-02 16:15:20 來源:億速云 閱讀:108 作者:iii 欄目:web開發(fā)

這篇文章主要介紹“Python 3.9版本有哪些新功能”,在日常操作中,相信很多人在Python 3.9版本有哪些新功能問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python 3.9版本有哪些新功能”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習吧!

1. 字典合并

這是筆者最喜歡的新功能之一,它擁有優(yōu)美的語法。如果有兩個字典a和b需要合并,可以使用合并運算符:

合并(merge)操作符|:

a = {1: 'a', 2: 'b', 3: 'c'} b = {4: 'd', 5: 'e'}c = a | b print(c)[Out]: {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}

用來更新原始字典的更新運算符|=:

a = {1: 'a', 2: 'b', 3: 'c'} b = {4: 'd', 5: 'e'}a |= b print(a)[Out]: {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}

如果字典共享一個公共鍵(common key),則使用第二個字典中的鍵值對:

a = {1: 'a', 2: 'b', 3: 'c', 6: 'in both'} b = {4: 'd', 5: 'e', 6: 'but different'}print(a | b)[Out]: {1: 'a', 2: 'b', 3: 'c', 6: 'but different',4: 'd', 5: 'e'}

使用迭代更新字典:|=運算符還有一個不錯的地方,即能夠通過可迭代對象(例如列表或生成器)使用新的鍵值對更新字典。

a = {'a': 'one', 'b': 'two'} b = ((i, i**2) for i in range(3))a |= b print(a)[Out]: {'a': 'one', 'b': 'two', 0: 0, 1: 1, 2: 4}

如果嘗試使用標準合并運算符|進行相同的操作,將產(chǎn)生一個類型錯誤(TypeError),因為它僅允許字典(dict)類型之間的合并操作。

Python 3.9版本有哪些新功能

2. 字符串方法

這個功能看起來“其貌不揚”,但實則非常實用。新版本添加了兩個用于刪除前綴和后綴的新字符串方法:

“ Hello world” .removeprefix(“ He”) [Out]:“ llo world” Hello world” .removesuffix(“ ld”) [Out]:“ Hello wor”

3. 新分析器

這是一個不可見的更改,但有可能成為Python未來發(fā)展中最重要的更改之一。

Python當前使用的主要是基于LL(1)的語法,而該語法又可以由LL(1)分析器進行解析,該分析器使用單一的前向標記符從上到下,從左到右地解析代碼。

筆者幾乎不知道它是如何工作的,但是可以指出一些由于Python使用這種方法導(dǎo)致的問題:

  • Python包含非LL(1)語法;當前語法的某些部分使用了工作區(qū),從而造成不必要的復(fù)雜性。

  • LL(1)在Python語法中造成限制(沒有可用的工作區(qū))。此問題突出說明了以下代碼根本無法使用當前分析器實現(xiàn)(引發(fā)語法錯誤):

  • with (open("a_really_long_foo") as foo,       open("a_really_long_bar")as bar):     pass
  • LL(1)在分析器中以左遞歸中斷。意味著含義特定的遞歸語法可能導(dǎo)致解析樹中的無限循環(huán)。

所有這些因素(還有很多根本無法理解的因素)嚴重限制了Python語言的發(fā)展。而基于PEG的新分析器將為Python開發(fā)人員提供更大的靈活性,人們會從Python  3.10開始注意到這一點。

4. 類型提示

Python是動態(tài)類型的,這意味著無需在代碼中指定數(shù)據(jù)類型。這一特性本身沒有問題,但有時可能會造成混淆。

從Python 3.5開始,用戶可以指定類型,但是操作起來非常麻煩。此次更新改變了這一點,舉個例子:

Python 3.9版本有哪些新功能

無類型提示(左)vs3.9中帶類型提示(右)

add_int函數(shù)的目的是為數(shù)值自身添加相同的數(shù)值。但是編輯器并不知道這一點,因此完全可以使用+將兩個字符串加在一起,不會發(fā)出警告。現(xiàn)在可以將期望的輸入類型指定為int。使用此功能,編輯器可以立即了解問題。

用戶還可以非常詳細地了解所包含的類型,例如:

Python 3.9版本有哪些新功能

類型提示可以在任何地方使用,新語法讓代碼看起來更加整潔:

Python 3.9版本有哪些新功能

將sum_dict的參數(shù)指定為dict,將返回值指定為整數(shù)型。在定義test時,也要確定其類型。

這些新功能確實讓人迫不及待,等不及的同學(xué)可以先去試試最新的Beta版本-3.9.0b3。

到此,關(guān)于“Python 3.9版本有哪些新功能”的學(xué)習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習,快去試試吧!若想繼續(xù)學(xué)習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI