Python 3.9:現在有什麼新功能? 結帳的酷功能

已發表: 2020-12-01

Python 一直是開發人員最喜歡和最受歡迎的語言。 根據根據編程語言的受歡迎程度對編程語言進行排名的編程社區 The Tiobe index,Python 已超過 Java,排名第二。 Python 擁有出色的社區支持,並且由於其簡單易用的特性,每個初學者都渴望至少掌握這門語言。

雖然這門語言近年來在數據分析、機器學習、Web 開發、計算機應用程序、物聯網或其他開發領域中獲得了很多關注,但它的最新版本 Python 3.9 已經發布,它帶來了一個從解析器到附加功能的大量更改,以更改功能發佈時間表。 讓我們詳細看看這些變化:

目錄

新運營商

在處理字典時,我們經常需要將它們與其他字典中的條目合併或更新。 早些時候,這可以使用字典對象的更新屬性來完成:first_dict.update(second_dict),但是這種方法的問題是更改是就地完成的,並且原始值被修改了。

為了使其成為臨時更改,需要另一個變量來存儲先前的值。 這個新版本引入了一個新的運算符,稱為合併運算符 (|),可用於合併字典。 這是一個代碼示例來理解這一點:

A = {“姓名”:“作者”,“公司”:“upGrad”}

B = {“狀態”:“講師”}

打印 (A|B)

輸出:{ “name” : “Author”, “company” : “upGrad”, “status” : “instructor”}

| 就像一個連接運算符,但如果你想更新原始值,那麼你可以簡單地使用 |= 運算符。 繼續前面的示例,A |=B 將更新 A 字典的值。

另請閱讀:印度的 Python 開發人員薪水

字符串操作

文本操作是數據科學生命週期的主要部分,尤其是在 NLP 期間。 有不同的函數可以執行不同類型的字符串操作,例如拆分、連接、替換等等。 加入這個傳統,添加了兩個新操作,即 removesuffix() 和 removeprefix()。

顧名思義,這些用於從字符串中刪除前綴和後綴。 它們可以通過使用字符串對象來訪問。 使用正則表達式和字符串切片可以輕鬆完成此刪除,但現在我們在內置庫中擁有此功能。 這是一個用於說明目的的簡單示例:

'@something_new'.removeprefix('@')

'something_231'.removesufix('231')

輸出:

新鮮玩意

某物_

修改時區模塊

此版本還引入了一個名為 zone info 的新模塊,支持標準庫中的 IANA 數據庫。 我們可以在標準庫的 DateTime 對像中指定時區,但用戶最終可以為時區創建複雜的規則。 根據 PEP 615,用戶群更傾向於主要時區,例如 UTC、IANA 或系統本地時區。 現在您可以通過指定格式為“continent/city”的配置搜索路徑來創建區域信息對象。 例如,

從區域信息導入區域信息

從日期時間導入日期時間

dt = datetime(2020, 11, 15, 01, tzinfo=ZoneInfo(“亞洲/加爾各答”))

dt.tzname()

輸出:'IST'

了解:頂級 Python 工具

新的數學函數

數學模塊由一般數學中使用的所有數值運算組成。 無論是正弦、餘弦函數、將數字四捨五入到特定位置,還是 pi 或指數等通用常數,數學模塊幾乎涵蓋了所有類型的函數。

此列表中添加了三個新函數,分別是 math.lcm()、math.nextafter()、math.ulp()。 雖然 LCM(最小公倍數)是一個非常常用的函數,但其他兩個函數的使用並不多。 早些時候,我們必須為 LCM 操作顯式創建一個函數,但現在開始這個新版本,我們在標準庫中有一個內置功能。 要使用此功能,只需調用:

導入數學

數學.lcm(2,3)

輸出:6

如果在此函數中未傳遞任何參數,則返回 1,如果其中一個為 0,則返回 0。

高性能解析器

除了功能級別的所有新增功能外,Python 語言解析器也更新為新的、更快的技術,稱為 PEG 解析器。 這個效果不會在這個版本中體現,而是在即將到來的 Python 3.10 中體現。 從 Python 創建之日起,它就一直使用 LL(1) 解析器,該解析器從上到下和從左到右解析代碼。 該解析器基於上下文無關語法,因此字符串可以具有多個解析樹並增加中間步驟的數量是模棱兩可的。 新的 PEG 解析器只生成一個有效的 AST(抽象語法樹),消除了前一個解析器的歧義。

新的隨機函數和發布週期的變化

在 random.random 模塊中,添加了新方法 randbytes(n),它返回隨機 n 個字節。 它與其他隨機函數非常相似。 同樣在以前,Python 每 18 個月發布一個新版本,現在已減少到 12 個月。

獲得世界頂尖大學的數據科學認證學習行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

結論

每當一個新版本的軟件發佈時,它都會伴隨著許多新的變化。 在這裡,我們討論了 Python 中的一些主要和突出的變化,包括新的運算符、添加的特性和改進的解析器。

其他模塊也有很多新的變化,例如 ast、asyncio、concurrent.futures、multiprocessing、XML。 一些功能已被貶值,而且名單還在繼續。 您可以查看官方文檔以獲取新 Python 3.9 中的完整更新列表。

如果您想了解 Python、數據科學,請查看 IIIT-B 和 upGrad 的數據科學 PG 文憑,該文憑專為在職專業人士而設,提供 10 多個案例研究和項目、實用的實踐研討會、與行業專家的指導,與行業導師一對一,400 多個小時的學習和頂級公司的工作協助。

為什麼 Python 比其他編碼語言更受歡迎?

Python 優於其他語言的原因有很多。 首先,Python 的代碼清晰易讀,即使是以前從未編寫過它們的開發人員也能理解。 Python 在科學界很常見,許多研究人員和教授都是 Python 的用戶。 開發人員可以共享、複製和更改在 Python 上編寫的代碼。 此外,Python 擁有強大的社區,並且由於它是一種免費和開放的編程語言,因此正在迅速發展。 Python 與廣泛的系統兼容。 它可以幫助開發人員,因為他們不會遇到其他語言中普遍存在的困難。

Python 中 math.nextafter() 和 math.ulp() 的用途是什麼?

nextafter() 和 ulp() 是 Python 3.9.0 中添加到數學庫中的兩個新函數。 nextafter() 函數返回 x 之後沿 y 方向的下一個浮點值。 如果 x 等於 y,則返回值 y。 它的語法是 math.nextafter(x, y),其中 x 和 y 是兩個整數/浮點值。 ULP 是 Unit in the Last Place 的縮寫。 ULP 是數值分析和計算機科學中浮點值之間的空間。 math.ulp() 函數返回浮點 x 的最低有效位的值。 它的語法是數學 ulp(x),要輸入的參數 x 必須是一個浮點數,它的 ulp 必須返回。

Python 中的解析器是什麼?

在語法分析步驟中,編譯器檢查詞法分析器創建的標記是否根據語言的語法規則進行組織。 解析器對此負責。 解析器從詞法分析器中獲取一串標記,並驗證該字符串是否符合源語言的語法。 檢測並報告任何語法問題,並生成解析樹,開發人員可以從中生成中間代碼。 此外,解析器模塊與 Python 的內部解析器和字節碼編譯器進行通信。 該接口的主要目的是允許 Python 代碼更改 Python 表達式的解析樹並從中生成工作代碼。