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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 3.6.0新语法_详解Python3.6正式版新特性

發布時間:2024/1/23 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 3.6.0新语法_详解Python3.6正式版新特性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

按照Python官網上的計劃,Python3.6正式版期望在2016-12-16號發布,也就是這周五。從去年的5月份開始,Python3.6版本就已經動手開發了,期間也斷斷續續的發布了4個Alpha版,4個Beta版,以及一個Candidate版本。

新的語法特性

1、格式化字符串(Formatted string literals)

即在普通字符串前添加 f 或 F 前綴,其效果類似于str.format()。比如name = "Fred"

print(f"He said his name is {name}.") # 'He said his name is Fred.'

其效果相當于:print("He said his name is {name}.".format(**locals()))

此外,此特性還支持嵌套字段,比如:width = 10

precision = 4

value = decimal.Decimal("12.34567")

print(f"result: {value:{width}.{precision}}") #'result: 12.35'

2、變量聲明語法(variable annotations)

即從Python3.5開始就有的Typehints。在Python3.5中,是這么使用的:from typing import List

def test(a: List[int], b: int) -> int:

return a[0] + b

print(test([3, 1], 2))

這里的語法檢查只在編輯器(比如Pycharm)中產生,在實際的使用中,并不進行嚴格檢查。

在Python3.6中,引入了新的語法:from typing import List, Dict

primes: List[int] = []

captain: str # 此時沒有初始值

class Starship:

stats: Dict[str, int] = {}

3、數字的下劃線寫法(Underscores in Numeric Literals)

即允許在數字中使用下劃線,以提高多位數字的可讀性。a = 1_000_000_000_000_000 # 1000000000000000

b = 0x_FF_FF_FF_FF # 4294967295

除此之外,“字符串格式化”也支持“_”選項,以打印出更易讀的數字字符串:'{:_}'.format(1000000) # '1_000_000'

'{:_x}'.format(0xFFFFFFFF) # 'ffff_ffff'

4、異步生成器(Asynchronous Generators)

在Python3.5中,引入了新的語法 async 和 await 來實現協同程序。但是有個限制,不能在同一個函數體內同時使用 yield 和 await,在Python3.6中,這個限制被放開了,Python3.6中允許定義異步生成器:async def ticker(delay, to):

"""Yield numbers from 0 to *to* every *delay* seconds."""

for i in range(to):

yield i

await asyncio.sleep(delay)

5、異步解析器(Asynchronous Comprehensions)

即允許在列表list、集合set 和字典dict 解析器中使用 async for 或 await 語法。result = [i async for i in aiter() if i % 2]

result = [await fun() for fun in funcs if await condition()]

新增加模塊

Python標準庫(The Standard Library)中增加了一個新的模塊:secrets。該模塊用來生成一些安全性更高的隨機數,以用來管理數據,比如passwords, account authentication, security tokens, 以及related secrets等。具體用法可參考官方文檔:secrets

其他新特性

1、新的 PYTHONMALLOC 環境變量允許開發者設置內存分配器,以及注冊debug鉤子等。

2、asyncio模塊更加穩定、高效,并且不再是臨時模塊,其中的API也都是穩定版的了。

3、typing模塊也有了一定改進,并且不再是臨時模塊。

4、datetime.strftime 和 date.strftime 開始支持ISO 8601的時間標識符%G, %u, %V。

5、hashlib 和 ssl 模塊開始支持OpenSSL1.1.0。

6、hashlib模塊開始支持新的hash算法,比如BLAKE2, SHA-3 和 SHAKE。

7、Windows上的 filesystem 和 console 默認編碼改為UTF-8。

8、json模塊中的 json.load() 和 json.loads() 函數開始支持 binary 類型輸入。

總結

以上是生活随笔為你收集整理的python 3.6.0新语法_详解Python3.6正式版新特性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。