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

值得期待的Python 3.9的新功能

開發
Python 3.9 beta預計下個月就要發布了,那么3.9有那些讓我們期待的新功能和變更呢?本我我們一起來說Python 3.9的新功能的。

Python 3.9 beta預計下個月就要發布了,那么3.9有那些讓我們期待的新功能和變更呢?本我我們一起來說Python 3.9的新功能的。

 

安裝測試版

為了能夠實際探索Python 3.9 的功能,我們需要先下載一個Python 3.9 alpha/beta并安裝。

  1. wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0a5.tgz 
  2. tar xzvf Python-3.9.0a5.tgz 
  3. cd Python-3.9.0a5 
  4. ./configure --prefix=/home/chongchong/python-3.9 
  5. make 
  6. make install 

這樣python測試版本就會安裝完成,我們通過

  1. /home/chongchong//python-3.9/bin/python3.9 

運行此命令后,會顯示當前版本和提示消息:

新區操作符

最值得期待的新功能是新字典合并運算符:|和|=。當前,我們要對字典合并要的做法,假設有兩個字典:

  1. d1 = {"x": 1, "y": 4, "z": 10} 
  2. d2 = {"a": 7, "b": 9, "x": 5} 

我們希望結果為:

  1. {'x': 5, 'y': 4, 'z': 10, 'a': 7, 'b': 9} 

方法1:

  1. d = dict(d1, **d2) 

方法2:

  1. d = d1.copy() 
  2. d.update(d2) 

方法3:

  1. d = {**d1, **d2} 

方法1使用dict(iterable, **kwargs)初始化字典的函數:第一個參數是普通字典,第二個參數是鍵/值對列表,在這種情況下,是使用**操作符解壓縮的另一個字典。

方法2使用update功能用第二個字典中的鍵值對更新第一個字典。由于該操作會修改原始字典,因此我們需要將第一個字典復制到最終變量中,以避免修改原始字典。

方法3是最簡練的解決方案,使用了字典解壓縮并將兩個變量(d1和d2)解壓縮為結果變量d。

三種方法都可以用,在python 3.9中,我們還可以使用新的|操作法來解決。

新操作符方法:

方法4:

  1. d = d1 | d2 
  2.  
  3.  
  4. d = {'x': 5, 'y': 4, 'z': 10, 'a': 7, 'b': 9} 

方法5:

  1. d1 |= d2 
  2.  
  3.  
  4. d1 = {'x': 5, 'y': 4, 'z': 10, 'a': 7, 'b': 9} 

上面的方法4與方法1的拆包(d = {**d1, **d2})非常相似。方法5可用于就地合并,其中原始變量(d1)被第二操作數(d2)的值更新。

拓撲順序

functools模塊的TopologicalSorter可能是值得關注的另一項新功能。該類允許我們使用拓撲順序對圖進行排序。拓撲順序是這樣的順序,其中對于2個節點u和v通過向邊連接uv(從u至v)u在v前

在引入此功能之前,我們必須使用Khan的算法或深度優先搜索(不是完全簡單的算法)手動來實現。在pyton 4.9中,如果需要對依賴作業進行排序以進行調度,則只需執行下面的操作:

  1. from functools import TopologicalSorter 
  2. graph = {"A": {"D"}, "B": {"D"}, "C": {"E", "H"}, "D": {"F", "G", "H"}, "E": {"G"}} 
  3. ts = TopologicalSorter(graph) 
  4. list(ts.static_order()) 

結果:

  1. ['H', 'F', 'G', 'D', 'E', 'A', 'B', 'C'] 

在上面的示例中,我們首先使用字典創建圖,其中鍵是傳出節點,值是它們的鄰居集。之后,我們使用圖形創建sorter的實例,然后調用static_order函數以產生排序。請記住,此順序可能取決于插入順序,因為當2個節點處于同一圖形級別時,它們將按插入順序返回。

除了靜態的排序,此類還支持節點的并行處理,比如與任務隊列工作。

IPv6范圍的地址

Python 3.9中引入的另一個變化是可以指定IPv6地址的范圍。對不不熟悉IPv6的人來說,通過IPv6范圍,它可以用來驗證IP的有效性。范圍可以在IP地址的末尾使用%符號指定,例如"3FFE:0:0:1:200:F8FF:FE75:50DF%2"。該IP地址為范圍內2,即鏈接本地地址。

因此,如果需要在Python中處理IPv6地址,現在可以這樣處理:

  1. from ipaddress import IPv6Address 
  2. addr = IPv6Address('ff02::fa51%1') 
  3. print(addr.scope_id) 

結果為:

"1" – 表示網卡本地地址。

但是,使用IPv6范圍時應注意一件事。使用基本的Python運算符進行比較時,范圍不同的兩個地址不相等。

新math功能

Python 3.9在math模塊中,添加或改進了許多其他功能。

  1. import math 
  2. math.gcd(80, 64, 152) 

8

以前計算最大公因數的函數(gcd)只能應用于2個數字,所以,我們不得不要變相使用math.gcd(80, math.gcd(64, 152))的方法來處理。從Python 3.9開始,gcd可以將其應用于任意數量的值。

math模塊的新增加的功能是math.lcm:

  1. math.lcm(4, 8, 5) 

40

math.lcm用來計算其參數的最小公倍數。與gcd相同,它允許可變數量的參數。

還有兩個新增加的功能是math.nextafter和math.ulp:

  1. math.nextafter(4, 5) 

4.000000000000001

  1. math.nextafter(9, 0) 

8.999999999999998

  1. math.ulp(1000000000000000) 

0.125

  1. math.ulp(3.14159265) 

4.440892098500626e-16

math.nextafter(x, y)功能是非常簡單:它表示往后面浮動x到y趨勢,同時增加浮點數精度的近似(根據確實補0或者9)。

而math.ulp用作數值計算精確的測量。最簡短的解釋是使用示例:

假設我們沒有64位計算機。相反,我們只有3位數字。用這3位數字可以表示3.14而不是3.141。使用3.14,我們可以代表的最接近的較大數字是3.15,這2個數字相差1個ULP(最后一個單位),即0.1。因此,math.ulp返回值如上面示例。

新的字符串函數

Python 3.9中,字符串也添加了兩個新的便捷功能:

removeprefix,去掉前綴

  1. "someText".removeprefix("some") 

結果為"Text"

removesuffix,去掉后綴

  1. "someText".removesuffix("Text") 

"some"

對這兩個函數的功能可以使用string[len(prefix):]前綴和string[:-len(suffix)]后綴來實現的功能。但是這樣的操作在日常很常見,所以增加這兩個函數可以帶來很多便捷。

HTTP代碼

還有一個需要提及的新功能是HTTP模塊中已經增加了狀態碼http.HTTPStatus。即是:

  1. import http 
  2. http.HTTPStatus.EARLY_HINTS 
  3. <HTTPStatus.EARLY_HINTS: 103> 
  4. http.HTTPStatus.TOO_EARLY 
  5. <HTTPStatus.TOO_EARLY: 425> 
  6. http.HTTPStatus.IM_A_TEAPOT 
  7. <HTTPStatus.IM_A_TEAPOT: 418> 

http.HTTPStatus這些狀態碼會對我們處理http協議中的很多問題帶來便捷。

結論

Python 3.9目前還處于Alpha階段,下個月發布beta版本,到正式版發布已經為時不多了,希望該文章介紹能對我們版本升級更換有所幫助。

責任編輯:趙寧寧 來源: 蟲蟲搜奇
相關推薦

2010-07-15 09:19:24

Scala 2.8Scala 2.8下載Scala 2.8中文

2020-05-15 21:00:42

pythonkaif開發代碼

2022-02-16 23:11:04

iOS蘋果功能

2020-04-03 11:22:15

Windows微軟功能

2023-04-10 06:59:17

Linux桌面環境

2023-11-16 08:55:14

CSS前端

2024-04-10 11:47:41

人工智能ChatGPT

2020-07-10 06:40:31

Python 3.9Python開發

2010-06-18 13:24:01

GroovyGroovy 1.7.

2014-08-27 17:07:17

2014-01-23 14:42:34

Windows 9

2023-01-03 10:29:17

2020-10-31 21:50:54

Python3.9Python開發

2012-06-07 13:04:05

Windows 8微軟

2009-10-30 09:37:27

Windows Ser

2009-03-31 08:37:42

Dell智能手機移動OS

2016-08-02 13:38:31

2009-09-15 09:11:58

Bing 2.0

2020-10-09 18:34:55

ECMAScriptJavaScript開發

2015-12-25 09:58:04

2016科技產品
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚州成人 | 香蕉久久a毛片 | 久久综合一区 | 欧美成人免费在线视频 | 国产精品久久久久久网站 | 国产精品视频中文字幕 | 久热伊人 | 日本特黄a级高清免费大片 国产精品久久性 | 奇米av | 黄色一级毛片 | 国产一区999 | 天天干狠狠操 | 不卡的av一区 | 亚洲欧美中文日韩在线v日本 | 日韩一区二区在线视频 | 久久精品免费观看 | 亚洲 欧美 激情 另类 校园 | 久久综合久色欧美综合狠狠 | 日韩a视频 | 国产一级片久久久 | 一级黄色短片 | 欧美激情久久久 | 欧美又大粗又爽又黄大片视频 | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | 久久最新 | 日韩av在线播 | 久久久男人的天堂 | 黄色免费在线观看 | 色综合99| 四色永久 | 国产线视频精品免费观看视频 | 亚洲欧美中文字幕在线观看 | 国产99视频精品免费视频7 | 亚洲一区二区免费视频 | 欧美亚洲国产一区二区三区 | caoporn国产精品免费公开 | 激情五月激情综合网 | 日韩国产欧美视频 | xxxxxx国产| 欧美一级片在线看 | 久久99精品国产麻豆婷婷 |