日常工作中,可能遇到一些python2和python3版本不一致到来的问题,简单整理下。
特点一:Python 3.0 在设计的时候没有考虑向下相容的,python2版本在python3上运行,可能会遇到各类问题。
1.print函数
在python2中,print为语句,语法格式: print “亿只猪儿虫”
在python3中为函数,语法格式: print (“亿只猪儿虫”)
如果在Python2中想使用 Python3的 print 函数,可以导入 future 包,该包禁用 Python2的 print 语句,采用 Python3的 print函数
两个版本的的许多兼容性设计的功能可以通过 future 这个包来导入
2.除法运算
2.1 / 除法:在 Python 2中 / 除法,整数相除的结果是一个整数,浮点数除法会保留小数点的部分得到一个浮点数
在 Python 3中 / 除法不再这么做了,对于整数之间的相除,结果也会是浮点数
2.2 // 除法,地板除,floor 除法,对除法的结果自动进行一个 floor 操作,在 Python 2和 Python 3中是一致的
3.不等运算符
Python 2中不等于有两种写法 != 和 <>
Python 3中去掉了<>, 只有!=一种写法,更简洁
4.Unicode
Python 2 有 ASCII str() 类型,unicode() 是单独的,不是 byte 类型。
在 Python 3,有了 Unicode (utf-8) 字符串,以及一个字节类:byte 和 bytearrays。
5.异常
Python 2中捕获异常为:except exc, var
Python 3中捕获异常为: except exc as var
6.xrange
在Python 2 中 xrange() 创建迭代对象;
在python3中被舍弃,无此用法,会报错
7.八进制表示方法
在python2中,八进制数可以写成0o5555,也可以写成0555
在Python 3中,表示八进制字面量的方式只有一种,就是0o555,旧的写法会报错。python2.6作为过渡版本,两种写法均可