成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

新版本嘗鮮:Python 3.9版本中的新功能有哪些?

開發 前端
又要到Python新版本發布的時刻了,測試版已然推出,完整發行版將在不久之后與我們見面。新版本中有許多值得期待的新功能,本文就先帶大家嘗嘗鮮。

本文轉載自公眾號“讀芯術”(ID:AI_Discovery)。

又要到Python新版本發布的時刻了,測試版已然推出,完整發行版將在不久之后與我們見面。這無疑令技術愛好者們十分興奮,摩拳擦掌地等待上手一探究竟。

新版本中有許多值得期待的新功能,本文就先帶大家嘗嘗鮮。

[[333092]]

1. 字典合并

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

合并(merge)操作符|:

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

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

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

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

  1. a = {1: 'a', 2: 'b', 3: 'c', 6: 'in both'} 
  2. 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'} 

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

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

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

新版本嘗鮮:Python 3.9版本中的新功能有哪些?

2. 字符串方法

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

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

3. 新分析器

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

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

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

  • Python包含非LL(1)語法;當前語法的某些部分使用了工作區,從而造成不必要的復雜性。
  • LL(1)在Python語法中造成限制(沒有可用的工作區)。此問題突出說明了以下代碼根本無法使用當前分析器實現(引發語法錯誤):
    1. with (open("a_really_long_foo") as foo, 
    2.       open("a_really_long_bar")as bar): 
    3.     pass 
  • LL(1)在分析器中以左遞歸中斷。意味著含義特定的遞歸語法可能導致解析樹中的無限循環。

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

4. 類型提示

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

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

新版本嘗鮮:Python 3.9版本中的新功能有哪些?

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

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

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

新版本嘗鮮:Python 3.9版本中的新功能有哪些?

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

新版本嘗鮮:Python 3.9版本中的新功能有哪些?

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

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

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2010-02-23 17:44:48

Python 3.0

2010-05-24 19:09:01

SubVersion最

2011-08-01 15:35:51

GlassFishJava 7

2015-10-19 10:07:24

OpenStackOpenStack L功能特性

2010-07-23 09:53:29

SQL Server

2020-04-27 15:43:45

Python 3.9python開發

2009-06-17 09:24:34

學習strutsStruts新版本

2010-04-30 16:45:49

Fedora 13

2012-10-22 10:56:59

Ubuntu

2020-11-11 21:13:58

dotNET 5.0微軟

2022-03-17 15:49:55

微信

2011-02-17 16:59:00

VS.NET 2010

2019-04-26 09:16:51

存儲

2010-03-01 15:05:39

WPF

2022-01-25 10:44:00

Windows 11微軟功能

2017-08-22 21:42:51

WebVRFirefox瀏覽器

2013-11-13 15:39:50

OpenStack企業級功能

2015-06-17 09:17:52

2015-02-05 16:59:36

平安WiFiiOS

2022-04-15 11:51:48

Windows 11安全加密
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本天堂一区 | 午夜精品一区二区三区在线播放 | 日韩免费视频一区二区 | 欧美激情免费在线 | 久久久国产精品 | 中文字幕人成乱码在线观看 | 亚洲国产成人精品久久 | 亚洲3p| 国产香蕉视频在线播放 | 黄网站免费在线看 | 91精品国产日韩91久久久久久 | 中文字幕av网站 | 成人免费淫片aa视频免费 | 日韩成人 | 91在线视频| 蜜桃在线一区二区三区 | 在线免费观看黄色 | 亚洲免费网 | www.操.com| 中日字幕大片在线播放 | 成人a免费 | 亚洲国产网 | 在线观看第一页 | www国产亚洲精品 | 久久久91精品国产一区二区三区 | 精品欧美一区免费观看α√ | 国产精品成人一区二区三区 | 91福利网址| 成人亚洲一区 | 一区二区在线 | 2022精品国偷自产免费观看 | 欧美日韩在线一区二区三区 | 日韩精品一区二 | 国产精品一区二区久久 | 九九精品在线 | 国产亚洲人成a在线v网站 | 久久久久国产精品一区 | 久热精品免费 | 亚洲三级免费看 | 黄色成人在线观看 | 国产免费麻豆视频 |