Python相关实用技巧02:Python2和Python3的区别
- 1 print函数
- 2 输入字符串
- 3 异常处理 try/except
- 4 除法运算
- 4.1 /除法:
- 4.2 //除法
- 5 八进制字面量表示
- 6 不等运算符
- 7 Python3.x: No module named 'urllib2'
1 print函数
- python3中print是一个内置函数,有多个参数,而python2中print是一个语法结构;
- Python2打印时可以不加括号:print ‘hello world’, Python3则需要加括号 print(“hello world”)
py2加括号,解释器可能会把他当成元祖,比如:print (‘hhh’,‘ggg’),对于这个,py2打印的是(‘hhh’,‘ggg’),而py3打印的是hhh ggg。
2 输入字符串
python2:
raw_input( “提示信息” )
python3:
input( “提示信息” )
3 异常处理 try/except
在2.x时代,异常在代码中除了表示程序错误,还经常做一些普通控制结构应该做的事情;
在3.x中可以看出,设计者让异常变的更加专一,只有在错误发生的情况才能去用异常捕获语句来处理。
python2:
try:
…
except Exception, e:
…
python3:
try:
…
except Exception as e:
…
4 除法运算
4.1 /除法:
- python 2.x中/除法:整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数除法会保留小数点的部分得到一个浮点数的结果。
- python 3.x中/除法:对于整数之间的相除,结果也会是浮点数。
4.2 //除法
//除法,这种除法叫做floor除法,会对除法的结果自动进行一个floor操作(会截断余数直接返回一个整数,如果有任何一个操作数是浮点数则返回浮点数),在python 2.x和python 3.x中是一致的。
5 八进制字面量表示八进制数必须写成0o777,原来的形式0777不能用了;二进制必须写成0b111。
新增了一个bin()函数用于将一个整数转换成二进制字串。 Python 2.6已经支持这两种语法。
在Python 3.x中,表示八进制字面量的方式只有一种,就是0o1000。
Python 2.x中不等于有两种写法 != 和 <>
Python 3.x中去掉了<>, 只有!=一种写法
7 Python3.x: No module named ‘urllib2’- Python3.x:用urllib.request代替urllib2