py2切py3
最近项目安全整改原因,需要升级python。汇总了下差异性,其中大部分可以用python3带的2to3.py转换。
影响较大的几点:
1.python3中str默认是unicode,以前python2中bytes和unicode混用就需要自己去掉之前的各种解码函数。
2.‘/’ 在2中计算的值得类型取决于除数和被除数是整型还是存在浮点数,python3中是浮点数。
3.except exc,var 改为 except exc as var
4.xrange剔除了,python3中的range就是2中的xrange
5.八进制0777改为0o777
6.dict的方法keys()、items()、values()等不再返回数组,而是迭代器。 同时废除了has_key(),用in代替判断即可。
7.raw_input()干掉,input就表示了2中的raw_input函数
8.map、filter、zip等函数变成了类,返回值也从列表改为了可迭代对象。
9.print语句改为了print()。
10.Python 2的时候,为了实现同一个包内模块的相互引用,你会使用import XX。Python 2解释器会先在当前目录里搜索XX.py,然后再去Python搜索路径(sys.path)里搜索。在Python 3里这个过程有一点不同。Python 3不会首先在当前路径搜索,它会直接在Python的搜索路径里寻找。如果你想要包里的一个模块导入包里的另外一个模块,你需要显式地提供两个模块的相对路径。
-------------后续遇到了新问题再补充。

浙公网安备 33010602011771号