四虎国产精品永久地址998_chinesexxx少妇露脸_日本丁香久久综合国产精品_一区二区久久久久_四虎av影视_久久久久国产一区二区三区不卡

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁 > IT資訊 > 軟件研發(fā) > Python3.9的新功能是什么?

Python3.9的新功能是什么?

2020-09-02 18:47:19 | 來源:中培企業(yè)IT培訓網

眾所周知,編程語言隔一段時間就會有新的版本發(fā)布,今天要介紹的是關于Python的新版本即將發(fā)布的信息。現(xiàn)在處于beta(3.9.0b3)中,我們很快將看到Python 3.9 的完整版本。一些最新功能令人難以置信,看到Python 3.9 在發(fā)布后會被使用。我們將看到以下新功能,即字典聯(lián)合運算符、類型提示、兩種新的字符串方法、新的Python解析器 。下面讓我們首先看一下這些新功能以及我們如何使用這些功能。

  詞典聯(lián)盟

我最喜歡的新功能之一,具有優(yōu)美的語法。如果我們有兩個字典a和b需要合并,我們現(xiàn)在使用并運算符。

我們有合并運算符|:

a={1:'a',2:'b',3:'c'}

b={4:'d',5:'e'}

c=a|b

print(c)

[輸出]:{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)

[輸出]:{1:“a”,2:“b”,3:“c”,4:“d”,5:“e”}

如果我們的詞典共享一個公共鍵,那么將使用第二個詞典中的鍵值對:

a={1:'a',2:'b',3:'c',6:'inboth'}

b={4:'d',5:'e',6:'butdifferent'}

print(a|b)

[輸出]:{1:“a”,2:“b”,3:“c”,6:“但與眾不同”,4:“d”,5:“e”}

使用Iterables進行字典更新

|=運算符的另一個很酷的行為是能夠使用可迭代對象使用新的鍵值對更新字典:

a={'a':'one','b':'two'}

b=((i,i**2)foriinrange(3))

a|=b

print(a)

[輸出]:{'a':'one','b':'two',0:0、1:1、2:4}

如果我們對標準聯(lián)合運算符嘗試相同的操作|我們將收到TypeError,因為它將僅允許dict類型之間的并集。

類型提示

Python是動態(tài)類型的,這意味著我們無需在代碼中指定數(shù)據類型。

沒關系,但有時可能會造成混淆,突然之間,Python的靈活性比其他任何事情都變得更加令人討厭。

從3.5開始,我們可以指定類型,但是非常麻煩。此更新確實改變了這一點,讓我們使用一個示例:

在我們的add_int函數(shù)中,我們顯然想為其自身添加相同的數(shù)字。但是我們的編輯器并不知道,并且完全可以使用+將兩個字符串加在一起-因此不會發(fā)出警告。

現(xiàn)在,我們可以將期望的輸入類型指定為int。使用此功能,我們的編輯人員可以立即了解問題。

我們也可以非常詳細地了解所包含的類型,例如:

類型提示可以在任何地方使用-由于有了新的語法,現(xiàn)在它看起來更加簡潔:

我們將sum_dict的參數(shù)指定為dict,并將返回值指定為int。在測試定義期間,我們還將確定其類型。

  字符串方法

雖然不像其他新功能那么迷人,但是仍然值得一提,因為它特別有用。添加了兩個用于刪除前綴和后綴的新字符串方法:

"Helloworld".removeprefix("He")

[出]:“llo世界”

Helloworld".removesuffix("ld")

[出]:“你好,我很擔心”

  新解析器

這更多是視線之外的更改,但有可能成為Python未來發(fā)展中最重大的更改之一。

Python當前使用的主要是基于LL1的語法,而該語法又可以由LL1解析器進行解析,該解析器從上到下,從左至右解析代碼,而前瞻性僅為一個標記。

現(xiàn)在,我?guī)缀醪恢浪侨绾喂ぷ鞯模怯捎谑褂昧诉@種方法,因此我可以為您介紹Python中的一些當前問題:

Python包含非LL1語法;因此,當前語法的某些部分使用了變通方法,從而造成了不必要的復雜性。LL1在Python語法中產生了限制。該問題突出表明,以下代碼根本無法使用當前解析器實現(xiàn):

with(open("a_really_long_foo")asfoo,

open("a_really_long_bar")asbar):

  Python

LL1在解析器中以左遞歸中斷。意味著特定的遞歸語法可能導致解析樹中的無限循環(huán)。Python的創(chuàng)建者GuidovanRossum解釋說

所有這些因素對Python產生了重大影響。它們限制了語言的發(fā)展。

基于PEG的新解析器將為Python開發(fā)人員提供更大的靈活性,從Python3.10起我們將開始注意到這一點。

這就是我們即將推出的Python3.9所期待的一切。如果您實在迫不及待,可以在此處獲取最新的Beta版本-3.9.0b3。

上述就是關于Python3.9的新功能是什么的全部內容介紹,想了解更多關于Python的信息,請繼續(xù)關注中培偉業(yè)。

相關閱讀

主站蜘蛛池模板: 和林格尔县| 壶关县| 临夏市| 日土县| 淮阳县| 延长县| 盘山县| 宝应县| 栾川县| 绍兴市| 克拉玛依市| 视频| 大邑县| 桐城市| 新津县| 新化县| 右玉县| 杭锦后旗| 连平县| 华坪县| 称多县| 金塔县| 武川县| 临夏县| 洪湖市| 临安市| 民县| 江油市| 齐河县| 萍乡市| 利津县| 萝北县| 陇西县| 木里| 读书| 富平县| 古丈县| 辛集市| 顺义区| 元朗区| 长子县|