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 相关文章推荐
Python多线程编程(三):threading.Thread类的重要函数和方法
Apr 05 Python
Python设计模式之MVC模式简单示例
Jan 10 Python
Django添加favicon.ico图标的示例代码
Aug 07 Python
在Pycharm中设置默认自动换行的方法
Jan 16 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
Apr 15 Python
Django ORM 常用字段与不常用字段汇总
Aug 09 Python
Python搭建代理IP池实现存储IP的方法
Oct 27 Python
Python 写了个新型冠状病毒疫情传播模拟程序
Feb 14 Python
Python通过文本和图片生成词云图
May 21 Python
python文件编写好后如何实践
Jul 07 Python
Python descriptor(描述符)的实现
Nov 15 Python
python 实现两个变量值进行交换的n种操作
Jun 02 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模拟socket一次连接,多次发送数据的实现代码
2011/07/26 PHP
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
2013/04/28 PHP
PHP实现把数字ID转字母ID
2013/08/12 PHP
PHP+jQuery 注册模块开发详解
2014/10/14 PHP
PHP CURL中传递cookie的方法步骤
2019/05/09 PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
2019/06/14 PHP
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
基于JQuery的日期联动实现代码
2011/02/24 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
2013/12/08 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
2014/06/23 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
2016/05/21 Javascript
利用JS实现数字增长
2016/07/28 Javascript
Bootstrap中点击按钮后变灰并显示加载中实例代码
2016/09/23 Javascript
基于jquery实现多级菜单效果
2017/07/25 jQuery
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
js 索引下标之li集合绑定点击事件
2018/01/12 Javascript
Vue组件通信入门之Provide和Inject机制
2019/12/29 Javascript
微信小程序利用for循环解决内容变更问题
2020/03/05 Javascript
python模拟新浪微博登陆功能(新浪微博爬虫)
2013/12/24 Python
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
python使用matplotlib画饼状图
2018/09/25 Python
python中调试或排错的五种方法示例
2019/09/12 Python
Python2与Python3的区别详解
2020/02/09 Python
Pycharm中import torch报错的快速解决方法
2020/03/05 Python
简述 Python 的类和对象
2020/08/21 Python
一款纯css3实现的响应式导航
2014/10/31 HTML / CSS
HTML5中使用postMessage实现两个网页间传递数据
2016/06/22 HTML / CSS
美国知名玩具品牌:Melissa & Doug
2016/08/16 全球购物
治安消防安全责任书
2014/07/23 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
关于晚自习早退的检讨书
2014/09/13 职场文书
纪念九一八事变83周年国旗下讲话稿
2014/09/15 职场文书
python爬取新闻门户网站的示例
2021/04/25 Python