丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開(kāi)發(fā)者 正文
發(fā)私信給AI研習(xí)社-譯站
發(fā)送

0

Python 3.9有什么新功能?

本文作者: AI研習(xí)社-譯站 2020-10-15 10:50
導(dǎo)語(yǔ):讓我們先來(lái)看看這些新特性以及如何使用它們。

Python 3.9有什么新功能?

字幕組雙語(yǔ)原文:Python 3.9有什么新功能?

英語(yǔ)原文:What Are The New Features in Python 3.9?

翻譯:雷鋒字幕組Suen


Python的新版本即將面世?,F(xiàn)在是beta版(3.9.0b3),我們很快就會(huì)看到python3.9的完整版本。

一些最新的特性令人興奮,在發(fā)布后使用它們將是令人震驚的。我們將討論以下內(nèi)容: 

  • 字典聯(lián)合運(yùn)算符 

  • 類(lèi)型提示 

  • 兩種新的字符串方法 

  • 新的Python解析器 

這挺酷的,讓我們先來(lái)看看這些新特性以及如何使用它們。 

字典聯(lián)合 

我最喜歡的一個(gè)新功能,語(yǔ)法流暢。如果我們有兩個(gè)字典a和b需要合并,我們現(xiàn)在使用union運(yùn)算符。 

我們有合并運(yùn)算符 |:

a = {1: 'a', 2: 'b', 3: 'c'}
b = {4: 'd', 5: 'e'}
c = a | bprint(c)

輸出:{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}

更新運(yùn)算法 |=,更新原始字典:

a = {1: 'a', 2: 'b', 3: 'c'}
b = {4: 'd', 5: 'e'}
a |= bprint(a)

輸出: {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}

如果字典共享一個(gè)公鑰,將使用第二個(gè)字典的鍵值對(duì):

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

輸出:{1: 'a', 2: 'b', 3: 'c', 6: 'but different', 4: 'd', 5: 'e'}

使用Iterables更新字典

|=運(yùn)算符的另一個(gè)很酷的行為是使用iterable對(duì)象(如列表或生成器)用新的鍵值對(duì)更新字典:

a = {'a': 'one', 'b': 'two'}
b = ((i, i**2) for i in range(3))
a |= bprint(a)

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

如果我們用標(biāo)準(zhǔn)的union運(yùn)算符|嘗試同樣的操作,將輸出TypeError,因?yàn)樗辉试Sdict類(lèi)型之間的聯(lián)合。

類(lèi)型提示

Python是動(dòng)態(tài)語(yǔ)言,這意味著我們不需要在代碼中指定數(shù)據(jù)類(lèi)型。 

這是可以的,但有時(shí)會(huì)令人困惑,而且Python的靈活性突然變得比其他任何東西都麻煩。 

從3.5開(kāi)始,我們可以指定類(lèi)型,但這相當(dāng)麻煩。這次更新確實(shí)改變了這一點(diǎn),讓我們舉個(gè)例子:

Python 3.9有什么新功能?

無(wú)類(lèi)型提示(左) V 有類(lèi)型提示(右)


在add_int函數(shù)中,我們想給它添加相同的數(shù)字(出于某種神秘的未定義的原因)。但是我們的編輯器不知道,使用+將兩個(gè)字符串添加在一起是完全可以的,因此不會(huì)提示警告。 

我們現(xiàn)在可以做的是將預(yù)期的輸入類(lèi)型指定為int。 之后編輯器會(huì)立刻報(bào)出問(wèn)題。

我們也可以對(duì)包含的類(lèi)型進(jìn)行詳細(xì)說(shuō)明,例如:

Python 3.9有什么新功能?

類(lèi)型提示用于各處-感謝新語(yǔ)法,看起來(lái)更加簡(jiǎn)潔:

Python 3.9有什么新功能?

我們將sum_dict的參數(shù)指定為dict,將返回值指定為int。在測(cè)試定義期間,我們還確定了它的類(lèi)型。

字符串方法

雖然沒(méi)有其他新功能那么吸引人,但仍然值得一提,因?yàn)樗貏e有用。添加了兩種用于刪除前綴和后綴的新字符串方法:

"Hello world".removeprefix("He")

輸出:“l(fā)lo world”

Hello world".removesuffix("ld"

輸出:“Hello wor” 

新解析器

這是一個(gè)看不見(jiàn)的變化,但有可能成為Python未來(lái)發(fā)展最重要的變化之一。 

Python當(dāng)前使用的主要是基于LL(1)的語(yǔ)法,而該語(yǔ)法又可以由LL(1)解析器進(jìn)行解析,該解析器從上到下,從左至右解析代碼,提前一個(gè)標(biāo)記。

我?guī)缀醪恢肋@是如何工作的—但是我可以給您介紹一些由于使用這種方法而導(dǎo)致的Python當(dāng)前的一些問(wèn)題:

Python包含非LL(1)語(yǔ)法;因此,當(dāng)前語(yǔ)法的某些部分使用了變通方法,造成了不必要的情況復(fù)雜性 。LL(1) 在Python語(yǔ)法中創(chuàng)建限制(沒(méi)有可能的解決方法)。此問(wèn)題強(qiáng)調(diào)以下代碼無(wú)法使用當(dāng)前解析器實(shí)現(xiàn)(引發(fā)語(yǔ)法錯(cuò)誤):

with (open("a_really_long_foo") as foo,
      open("a_really_long_bar") as bar):    pass

LL(1)在解析器中用左遞歸中斷。這意味著特定的遞歸語(yǔ)法會(huì)導(dǎo)致解析樹(shù)中出現(xiàn)無(wú)限循環(huán)。Python的創(chuàng)建者Guido van Rossum解釋道 

所有這些因素(還有更多我根本無(wú)法理解的因素)對(duì)Python有一個(gè)主要的影響;它們限制了語(yǔ)言的發(fā)展。

新的基于PEG的解析器將使Python開(kāi)發(fā)人員具有更大的靈活性,這一點(diǎn)我們將從Python 3.10 onwards  開(kāi)始注意到。

這就是我們?cè)诩磳⒌絹?lái)的Python3.9中所能期待的一切。如果您真的等不及了,最新的beta版本3.9.0b3 — is available here。


雷鋒字幕組是一個(gè)由AI愛(ài)好者組成的翻譯團(tuán)隊(duì),匯聚五五多位志愿者的力量,分享最新的海外AI資訊,交流關(guān)于人工智能技術(shù)領(lǐng)域的行業(yè)轉(zhuǎn)變與技術(shù)創(chuàng)新的見(jiàn)解。

團(tuán)隊(duì)成員有大數(shù)據(jù)專(zhuān)家,算法工程師,圖像處理工程師,產(chǎn)品經(jīng)理,產(chǎn)品運(yùn)營(yíng),IT咨詢?nèi)?,在校師生;志愿者們?lái)自IBM,AVL,Adobe,阿里,百度等知名企業(yè),北大,清華,港大,中科院,南卡羅萊納大學(xué),早稻田大學(xué)等海內(nèi)外高校研究所。

如果,你也是位熱愛(ài)分享的AI愛(ài)好者。歡迎與雷鋒字幕組一起,學(xué)習(xí)新知,分享成長(zhǎng)。

Python 3.9有什么新功能?

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。

Python 3.9有什么新功能?

分享:
相關(guān)文章

知情人士

AI研習(xí)社(yanxishe.com)譯站頻道,傳播前沿人工智能知識(shí),讓語(yǔ)言不再成為學(xué)習(xí)知識(shí)的門(mén)檻。(原雷鋒字幕組)
當(dāng)月熱門(mén)文章
最新文章
請(qǐng)?zhí)顚?xiě)申請(qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)