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、性能优化等。。。