python3.6和3.5的区别是什么

  

这篇文章主要介绍python3.6和3.5的区别是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

新的语法特性:

PEP 498:格式化字符串字面量

PEP 515:数字字面量中的下划线

PEP 526:变量注解中的语法

PEP 525:异步生成器

PEP 520:异步解析式

python学习网,大量的免费python视频教程,欢迎在线学习!

新的库模块:

Secrets:PEP 506 - 在标准库中添加了Secrets模块

CPython实现的改进:

重新实现了字典(dict)类型,以便能像PyPy的字典类型一样使用更紧凑的表达方式。与Python 3.5相比,这使字典的内存用量减少了20%到25%。

用新协定优化了类的自定义建立。

类属性定义顺序(class attribute definition order)现在被保留了**kwargs内的元素顺序现在对应于将关键字(保留字)参数传递给函数的顺序。

新增了对DTrace和SystemTap probing的支持。

新PYTHONMALLOC环境变量现在可用于调试解释器内存分配与访问错误。

标准库的重大改进:

为asyncio模块开发了新功能、显著的可用性、性能优化,以及大量的错误修复。 从Python 3.6开始,asyncio模块不再是临时的了,其API也进入了稳定状态。

实现了用于支持类路径对象(path-like objects)的新文件系统路径协议。 所有在路径(path)上使用的标准库函数都已更新,以便适应于新协议。

datetime模块已获得对本地时间消歧(Local Time Disambiguation)的支持。

针对typing模块的一些改进,使其不再是临时模块。

tracemalloc模块已重大改进,现用于为ResourceWarning提供更好的输出,并为内存分配错误提供更好的诊断。 

安全相关的改进:

新secrets模块被用于简化那些适用于管理密文的密码学安全伪随机数生成器(cryptographically strong pseudo-random numbers)的生成过程,如认证、token等。

在Linux上,现将os.urandom()改成了阻塞模式,直到系统的urandom的熵池(entropy pool)的初始化具有更高的安全性。 解释请参见PEP 524。

hashlib和ssl模块现已支持OpenSSL 1.1.0。

改进了ssl模块的默认设置和特性集。

新增了hashlib模块对BLAKE2、SHA-3、SHAKE哈希算法以及scrypt()密钥导出函数的支持。

Windows上的改进:

PEP 528与PEP 529,Windows文件系统和控制台的编码已更改为UTF-8。

当用户没有指定版本(通过命令行参数或配置文件)时,py.exe启动器以交互方式使用时,不再以Python 2优先于Python 3。处理事情行的方式保持不变,此处的“巨蟒”依旧指Python 2 .

python.exe和pythonw。exe已标记为长路径敏感(长路径意识到),这意味着260字符路径限制可能不再适用。有关详细信息,请参阅删除MAX_PATH限制。

可以添加。_pth文件以强制隔离模式(隔离模式)并完全指定所有搜索路径,以避免注册表查找和环境查找只

一个python36.zip文件现可用作一个地标(里程碑)以臆指PYTHONHOME。

<强>新特性:

<强> PEP 498:格式化字符串

<强> PEP 498引入了一种新的字符串:_f-strings_,或者格式化字符串。

格式化字符串带& # 39;f # 39;前缀,类似于str.format()接受的格式字符串。它们包含了由花括号括起来的替换字段。替换字段是表达式,它们会在运行时计算,然后使用格式()协议进行格式化:

在祝辞祝辞,name =,“Fred"   在祝辞祝辞,f"他said  his  name  is {名称}!”   & # 39;他said  his  name  is 弗雷德·强生# 39;   在祝辞祝辞,width =10   在祝辞祝辞precision =, 4   在祝辞祝辞,value =, decimal.Decimal (“12.34567”)   祝辞祝辞祝辞,f"结果:,{值:{宽度},{精密}},,#,nested 字段   & # 39;结果:12.35 & # 39;

<强> PEP 498 -字符串插值。

<强> PEP 526:变量注释语法

PEP 484引入了函数参数的类型注释的标准,又名类型提示。这个PEP添加了用来注释变量(包括类变量和实例变量)类型的语法:

质数:,列表(int),=, []   队长:str  #,注意:,no  initial 价值!   class 飞船:   统计:Dict (str, int),=, {}

正如函数注释,Python解释器不附加任何特殊意义到变量注释上,只是将它们存储在一个类或者模块的__annotations__属性中。

与静态类型语言中的变量声明相比,注释语法的目的在于提供一种简单的方式,通过抽象语法树和__annotations__属性,来为第三方工具和库指定结构化类型元数据。

python3.6和3.5的区别是什么