Python 3.8 新功能大揭秘【新手必学】


Posted in Python onFebruary 05, 2020

最新版本的Python发布了!今年夏天,Python 3.8发布beta版本,在2019年10月14日,第一个正式版本已准备就绪。现在,我们都可以开始使用新功能并从最新改进中受益。

Python 3.8是Python语言的最新版本,它适合用于编写脚本、自动化以及机器学习和Web开发等各种任务。现在Python 3.8已经进入官方的beta阶段,这个版本带来了许多语法改变、内存共享、更有效的序列化和反序列化、改进的字典和更多新功能。

好了,正文开始,一起看看吧!

Python 3.8 是 Python 编程语言的最新主要版本, 它包含许多新功能和优化。

Python 3.8 新功能大揭秘【新手必学】

Python 3.8 的一些新功能包括:

1. 海象运算符

Python 3.8 新功能大揭秘【新手必学】

PS:很多人在学习Python的过程中,往往因为没有好的教程或者没人指导从而导致自己容易放弃,为此我建了个Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的问题多跟里面的人交流,都会解决哦!

在这个新版本中,我们有一种新的赋值运算符,称为 Walrus 运算符:=。该运算符的优点是可以在一行中设置和返回变量。例如:

sample_data = [
{“id”: 1, “name”: “Srijan”},
{“id”: 2, “name”: “Abhishek”},
{“id”: 3, “name”: “Dilip”},
{“id”: 4, “name”: “Vishal”},
{“id”: 4, “name”: None},
]
print(“With Python 3.8 Walrus Operator:”)
for entry in sample_data:
 if name := entry.get(“name”):
  print(f'Found name = {name}')
print(“Without Walrus operator:”)
for entry in sample_data:
 name = entry.get(“name”)
 if name:
  print(f'Found name = {name}')Output:
With Python 3.8 Walrus Operator:
Found name = “Srijan”
Found name = “Abhishek”
Found name = “Dilip”
Found name = “Vishal”
Without Walrus operator:
Found name = “Srijan”
Found name = “Abhishek”
Found name = “Dilip”
Found name = “Vishal”

2. 仅限位置形参

现在,在定义方法的参数时可以使用特殊的标记「/」,以指定该函数仅接受标记左侧的位置参数。此处的「/」标记表示 x,y 和 z 的值只能在位置上传递,而不能使用关键字参数。

def func1(x,y,z=None,/):
 r = x + y
 if z is not None:
  r -= z
 return r
print(func1(2, 5)) #7
print(func1(2, 5, 3)) #4
print(func1(x=2, y=10)) #TypeError
print(func1(2, 10, z=3)) #TypeError

3.f-string 支持「=」

现在,你可以在 f-string 中使用「=」运算符来获取并打印值。这意味着现在我们可以在 f-string 中执行算术运算了。

a=5
b=6
print(f'sum={a+b}') #11

4.* 新语法警告 **

Python 为缺少逗号引入了新的警告消息,在这个新版本中的错误消息。解释器会抛出这个有用的警告信息,这将有助于用户快速找到自己的错误。

list1=[[0,1] [2,3]] #这将给出缺少逗号和TypeError的SyntaxWarning。

Python 3.8 新功能大揭秘【新手必学】

SyntaxWarning

5.可逆字典

reversed()现在可用于字典。Python 已经开始从 3.7 开始保留 Dictionary 中插入键的顺序,但现在在 3.8 中,您也可以反转它。

dict1={'a':5,'b':6}
print(dict1) #{'a': 5, 'b': 6}
print(list(reversed(dict1))) ['b', 'a']

6. 多处理共享内存

使用多处理,可以跨 Python 的所有实例全局共享和访问数据。这将大大加快数据的保存、存储、访问和传输。

7.创建 pickle 文件的新协议

Python 中的 Pickle 主要用于序列化和反序列化数据,以及可以在其他地方使用的代码。在这个新版本中,Python 将默认使用 Protocol 4,您也可以将 Protocol 5 与之一起使用。这将使 Api 得到充分利用,从而提高性能。对于在数据科学领域工作的人来说,这是一个令人兴奋的消息,因为即使在空间较低或有限的服务器上,这也能很好地与 Django 和 Flask 一起工作。

8.改进的 CPython

Python 还表示,他们已经改进了 Python 的 C 引擎。这将使 Python 中的优化变得容易。数据科学领域的人们已经遇到了很多 Python 或 Jupyter 环境由于大量数据而崩溃的例子。随着 CPython 模块的改进,用户可以期望在处理和查询数据时获得更好的结果。

9.性能改进

此版本增加了一些性能,加快了解释器的速度。其中一些是:

  • operator.itemgetter() 现在快了 33%。
  • Field lookups in collections.namedtuple() 中的字段查找现在快了两倍多。
  • 列表构造函数现在创建的列表平均小 12%。
  • uuid.UUID 现在使用插槽来减少内存占用。
  • 一些简单的内置和方法的调用现在快了 20-50%。

总结

很多人在学习Python的过程中,往往因为没有好的教程或者没人指导从而导致自己容易放弃,为此我建了个Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的问题多跟里面的人交流,都会解决哦!

以上所述是小编给大家介绍的Python 3.8 新功能【新手必学】希望对大家有所帮助!

Python 相关文章推荐
Python3读取Excel数据存入MySQL的方法
May 04 Python
python模块smtplib学习
May 22 Python
详解python3中zipfile模块用法
Jun 18 Python
Python实现的拉格朗日插值法示例
Jan 08 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
Mar 30 Python
python将字符串转换成json的方法小结
Jul 09 Python
python+numpy按行求一个二维数组的最大值方法
Jul 09 Python
Python调用Windows API函数编写录音机和音乐播放器功能
Jan 05 Python
jupyter notebook运行命令显示[*](解决办法)
May 18 Python
变长双向rnn的正确使用姿势教学
May 31 Python
Python Pandas读取Excel日期数据的异常处理方法
Feb 28 Python
使用Python获取字典键对应值的方法
Apr 26 Python
TensorFlow学习之分布式的TensorFlow运行环境
Feb 05 #Python
TensorFlow MNIST手写数据集的实现方法
Feb 05 #Python
tensorflow之并行读入数据详解
Feb 05 #Python
tensorflow mnist 数据加载实现并画图效果
Feb 05 #Python
tensorflow 自定义损失函数示例代码
Feb 05 #Python
利用Tensorflow的队列多线程读取数据方式
Feb 05 #Python
Tensorflow 多线程与多进程数据加载实例
Feb 05 #Python
You might like
php+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
PHP函数eval()介绍和使用示例
2014/08/20 PHP
php如何连接sql server
2015/10/16 PHP
yii框架redis结合php实现秒杀效果(实例代码)
2017/10/26 PHP
PHP使用OB缓存实现静态化功能示例
2019/03/23 PHP
从Ajax到JQuery Ajax学习
2007/02/14 Javascript
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
2009/04/24 Javascript
JavaScript 获取当前时间戳的代码
2010/08/05 Javascript
高亮显示web页表格行的javascript代码
2010/11/19 Javascript
分页栏的web标准实现
2011/11/01 Javascript
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
js 判断所选时间(或者当前时间)是否在某一时间段的实现代码
2015/09/05 Javascript
js 获取当前web应用的上下文路径实现方法
2016/08/19 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
koa2实现登录注册功能的示例代码
2018/12/03 Javascript
JS实现页面跳转与刷新的方法汇总
2019/08/30 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
mpvue实现微信小程序快递单号查询代码
2020/04/03 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
[01:18]PWL开团时刻DAY10——一拳超人
2020/11/11 DOTA
[01:07:19]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第一场 1月19日
2021/03/11 DOTA
python利用paramiko连接远程服务器执行命令的方法
2017/10/16 Python
python 简单备份文件脚本v1.0的实例
2017/11/06 Python
Django正则URL匹配实现流程解析
2020/11/13 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
海淘母婴商城:国际妈咪
2016/07/23 全球购物
美国女士内衣在线折扣商店:One Hanes Place
2019/03/24 全球购物
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
在职人员函授期间自我评价分享
2013/11/08 职场文书
一月红领巾广播稿
2014/02/11 职场文书
工伤死亡理赔协议书
2014/10/20 职场文书
财务工作失职检讨书
2014/11/21 职场文书
教师学期末个人总结
2015/02/13 职场文书
2016年大学生党员公开承诺书
2016/03/24 职场文书
基于Python实现流星雨效果的绘制
2022/03/18 Python