python2和python3的差异

1、python在python2里面是,在python3是函数

2、python2和python3的编码问题。python3不再有Unicode对象,默认str就是unicode

Python2的默认编码是asscii,这也是导致Python2中经常遇到编码问题的原因之一,至于是为什么会使用asscii作为默认编码,原因在于Python这门语言诞生的时候还没出现Unicode。Python3默认采用了UTF-8作为默认编码,以后python3的代码里面不再需要在文件顶部写#coding=utf-8了。

3、除法变化。python3除号返回浮点数

比如原来1/2(两个整数相除)结果是0,现在是0.5了

4、新的字符串格式化方法format取代%

6、python3 彻底废弃了 long+int

统一为 int , 支持高精度整数运算

7、Python2中用raw_input ,Python3中用input




python3改进

1、类型注解(type hint).帮助IDE实现类型检查

2、优化的super()方便直接调用父类函数

3、高级解包操作。a,b,*rest = range(10)

4、Keyword only arguments。限定关键字参数

5、Chained exceptions。 python3重新抛出异常不会丢失栈信息

6、一切返回迭代器range, zip, map, dict.values, etc, are all iterators。

python3新增

1、yield from链接子生成器

2、asyncio内置库,async/await原生协程支持异步编程

3、新的内置库enum, mock, asyncio, ipaddress, concurrent.futures等

4、生成的pyc文件统一放到__pycache__

5、一些内置库的修改。urllib,selector等

6、性能优化等。。。

原文地址:https://www.cnblogs.com/zhaop8078/p/11363237.html