91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Python 3.9新特性有哪些

發布時間:2022-03-22 10:37:45 來源:億速云 閱讀:134 作者:iii 欄目:web開發

本篇內容主要講解“Python 3.9新特性有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python 3.9新特性有哪些”吧!

字典合并

一個非常優雅的特性,當我們想將兩個字典進行合并時,只需要使用操作符“|”:

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'}

這里需要注意的是,如果兩個字典都包含相同的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}

這里需要注意的是,如果你使用標準的合并操作符“|”來取代上面的“|=”操作服,這會直接導致TypeError。

TypeError:unsupported opprand type(s) for |:'dict' and 'generator'

類型提示

Python作為動態類型的編程語言,這意味著在使用中我們并不需要給變量指定數據類型。然而雖然可以這樣做,但是這讓我們在維護代碼時常常感到困惑,并且靈活性也成了缺點。

在3.5版本后,雖然我們可以指定數據類型了,但是使用起來仍然非常麻煩。這次新版本就對此進行了更新:沒有類型提示vs有類型提示

上圖中我們想通過add_int函數將兩個相同的數字想加到一起,然而編譯器并沒有很好的理解我們的意圖,由于兩個字符串也可以使用+進行連接,所以這里并沒有給出警告。

現在當我們可以指定函數的參數類型時,在參數類型為int時,編譯器就能夠立即識別上述的問題。

新增字符串函數

雖然字符串函數沒有其他新特性那么強大,但字符串作為開發中使用最頻繁的數據類型,這里也需要提一下他的改變。新版本中添加了移除前綴和后綴的兩個字符串函數:

"Hello world".removeprefix("He")

Hello world".removesuffix("ld")

輸出結果:

[Out]: "llo world"

[Out]: "Hello wor"

新的解析器

作為一個普通的開發者,語法解析器的變化可能不易被察覺,但它的變化有可能成為Python演變中的一個重要轉折點。

我們所知,目前Python主要是用的是一種基于LL(1)的語法,這種語法可以通過LL(1)解析器進行解析,該解析器從上到下、從左到右地解析代碼,只需要從詞法分析器中取出一個 token 就可以正確地解析下去。

然而LL(1) 存在的一些問題:

Python 中包含非 LL(1) 語法,正因如此,當前語法采用了一些曲線救國的辦法,帶來了很多不必要的復雜性。

LL(1) 給 Python 語法造成了很多限制。某個相關話題提到了下面代碼無法用當前的解析器進行解析(會造成 SyntaxError)。

with (open("a_really_long_foo") as foo,

open("a_really_long_bar") as bar):

到此,相信大家對“Python 3.9新特性有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

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

AI

天全县| 林甸县| 塘沽区| 芜湖市| 砀山县| 太谷县| 保亭| 江达县| 钟山县| 繁昌县| 勐海县| 文水县| 莆田市| 富源县| 房山区| 巴彦县| 丰城市| 宁德市| 桐庐县| 余江县| 南昌市| 兰溪市| 虎林市| 沛县| 江源县| 南投县| 黔江区| 祁阳县| 伊金霍洛旗| 江北区| 涟水县| 木里| 方城县| 深水埗区| 夏津县| 西充县| 锡林浩特市| 吴川市| 玛曲县| 临江市| 如皋市|