日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python3 2.00gb怎么去掉单位_最值得期待的Python 3.9的新功能

發(fā)布時間:2023/12/4 python 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python3 2.00gb怎么去掉单位_最值得期待的Python 3.9的新功能 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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

安裝測試版

為了能夠?qū)嶋H探索Python 3.9 的功能,我們需要先下載一個Python 3.9 alpha/beta并安裝。

wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0a5.tgz

tar xzvf Python-3.9.0a5.tgz

cd Python-3.9.0a5

./configure --prefix=/home/chongchong/python-3.9

make

make install

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

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

運(yùn)行此命令后,會顯示當(dāng)前版本和提示消息:

新區(qū)操作符

最值得期待的新功能是新字典合并運(yùn)算符:|和|=。當(dāng)前,我們要對字典合并要的做法,假設(shè)有兩個字典:

d1 = {"x": 1, "y": 4, "z": 10}

d2 = {"a": 7, "b": 9, "x": 5}

我們希望結(jié)果為:

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

# ^^^^^ Notice that "x" got overridden by value from second dictionary

方法1:

d = dict(d1, **d2)

方法2:

d = d1.copy()

d.update(d2)

方法3:

d = {**d1, **d2}

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

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

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

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

新操作符方法:

方法4:

d = d1 | d2

d = {'x': 5, 'y': 4, 'z': 10, 'a': 7, 'b': 9}

方法5:

d1 |= d2

d1 = {'x': 5, 'y': 4, 'z': 10, 'a': 7, 'b': 9}

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

拓?fù)漤樞?/h1>

functools模塊的TopologicalSorter可能是值得關(guān)注的另一項新功能。該類允許我們使用拓?fù)漤樞驅(qū)D進(jìn)行排序。拓?fù)漤樞蚴沁@樣的順序,其中對于2個節(jié)點(diǎn)u和v通過向邊連接uv(從u至v)u在v前

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

from functools import TopologicalSorter

graph = {"A": {"D"}, "B": {"D"}, "C": {"E", "H"}, "D": {"F", "G", "H"}, "E": {"G"}}

ts = TopologicalSorter(graph)

list(ts.static_order())

結(jié)果:

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

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

除了靜態(tài)的排序,此類還支持節(jié)點(diǎn)的并行處理,比如與任務(wù)隊列工作。

IPv6范圍的地址

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

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

from ipaddress import IPv6Address

addr = IPv6Address('ff02::fa51%1')

print(addr.scope_id)

結(jié)果為:

"1" – 表示網(wǎng)卡本地地址。

但是,使用IPv6范圍時應(yīng)注意一件事。使用基本的Python運(yùn)算符進(jìn)行比較時,范圍不同的兩個地址不相等。

新math功能

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

import math

math.gcd(80, 64, 152)

8

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

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

math.lcm(4, 8, 5)

40

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

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

math.nextafter(4, 5)

4.000000000000001

math.nextafter(9, 0)

8.999999999999998

math.ulp(1000000000000000)

0.125

math.ulp(3.14159265)

4.440892098500626e-16

math.nextafter(x, y)功能是非常簡單:它表示往后面浮動x到y(tǒng)同時增加浮點(diǎn)數(shù)精度的近似(補(bǔ)0或者9)。

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

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

新的字符串函數(shù)

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

removeprefix,去掉前綴

"someText".removeprefix("some")

結(jié)果為"Text"

removesuffix,去掉后綴

"someText".removesuffix("Text")

"some"

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

HTTP代碼

還有一個需要提及的新功能是HTTP模塊中已經(jīng)增加了狀態(tài)碼http.HTTPStatus。即是:

import http

http.HTTPStatus.EARLY_HINTS

#

http.HTTPStatus.TOO_EARLY

#

http.HTTPStatus.IM_A_TEAPOT

#

http.HTTPStatus這些狀態(tài)碼會對我們處理http協(xié)議中的很多問題帶來便捷。

結(jié)論

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

總結(jié)

以上是生活随笔為你收集整理的python3 2.00gb怎么去掉单位_最值得期待的Python 3.9的新功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。