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函数

  1. python3中print是一个内置函数,有多个参数,而python2中print是一个语法结构;
  2. 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中是一致的。

python里面print要加引号吗 python中print后面要加括号吗_python里面print要加引号吗

5 八进制字面量表示

八进制数必须写成0o777,原来的形式0777不能用了;二进制必须写成0b111。

新增了一个bin()函数用于将一个整数转换成二进制字串。 Python 2.6已经支持这两种语法。

在Python 3.x中,表示八进制字面量的方式只有一种,就是0o1000。

python里面print要加引号吗 python中print后面要加括号吗_字符串_02

6 不等运算符

Python 2.x中不等于有两种写法 != 和 <>

Python 3.x中去掉了<>, 只有!=一种写法

7 Python3.x: No module named ‘urllib2’
  • Python3.x:用urllib.request代替urllib2
  • python里面print要加引号吗 python中print后面要加括号吗_字符串_03