社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

关于Python3.9,你不可不知的4个新特性

Python绿色通道 • 4 年前 • 499 次点击  

↑ 关注 + 星标 ,每天学Python新技能

后台回复【大礼包】送你Python自学大礼包

1.词典联合运算符


这是我最喜欢的功能之一,语法非常优美。


在Python3.9,如果你有两个词典,现在可以用这些运算符进行合并和更新。

合并运算符 "|":


还有update运算符|=,它会更新原始字典:


a = {1: 'a', 2: 'b', 3: 'c'}
b = {4: 'd' , 5: 'e'}
a |= b
print(a)
{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}


如果我们的词典共享一个key,那么将使用第二个词典中的value:


a = {1: 'a', 2: 'b', 3: 'c', 6: 'in both'}
b = {4: 'd', 5: 'e', 6: 'but different'}
print(a | b)
{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)
{'a': 'one', 'b': 'two', 0: 0, 1: 1, 2: 4}


当然,如果你用|这样做,则会得到TypeError,因为它只能用于dict类型之间的联合。

2.字符串方法



removeprefix() 和 removesuffix()

 str.removeprefix(substring: string) 接收一个 substring 参数,顾名思义,它将删除字符串对应的 substring 前缀,如果没有对应的前缀,返回原字符串。

 str.removesuffix(substring: string) 接收一个 substring 参数,它将删除字符串的对应 substring 后缀,如果没有对应的后缀,返回原字符串。


当然,这两个函数你也可以通过使用  string[:-len(suffix)] string[len(prefix):] 来实现。

这些是非常简单的操作,因此也是非常简单的功能,考虑到你可能经常执行这些操作,Python3.9 提供的这两个内置函数应该能让你非常爽。

3.新的数学函数



Python 3.9 的数学模块进行了不少的优化并添加了许多新功能。

比如以前gcd计算最大公因数的函数只能应用于2个数字,这就很蛋疼,我们必须使用  math.gcd(80, math.gcd(64, 152)) 来处理大于2个数字的情况。

现在 gcd 允许计算任意数量的数字。

import math

# Greatest common divisor
math.gcd(80, 64, 152)
# 8


Math模块中,另一个新增的功能是:

# 最小公倍数
math.lcm(4, 8, 5)
# 40


用于计算最小公倍数:math.lcm,与gcd一样,它允许可变数量的参数。

4.新的解析器—PEG



这一个更改你可能看不见、摸不着,但它可能改变Python的未来。

以前Python使用 LL(1) 解析器,从Python 3.9 开始,将使用 PEG 解析器,官方认为,这个更改会使得他们更加方便地构建新功能。

因此,请期待Python 3.10,Python团队或许能给我们带来更多的惊喜!



最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!


点击👆卡片,关注后回复【面试题】即可获取





    

精彩推荐
最落寞的C9高校:从未没落
别再问我Python打包成exe了!(终极版)
《最受欢迎的男友职业排行榜Top10》
so cool !专属Python开发者的完美终端工具

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/119600