python2与3的常见区别

python3对于python2的标准库进行了一定程序的拆分和整合。相对于python2,python3要更容易理解一些。python2对于中文字符的支持性能不是特别的好,但是在python3中已经成功的解决。下面罗列一下他们的不同之处。
一、python3的print函数替代了python2的print语句

#python2
>>>print "7,8"
>7 ,8

#python3
>>>print(5,6)
>5,6

如果python2使用python3的语句就会报SyntaxError: Missing parentheses in call to 'print’的错误

二、python3的异常与python2的异常操作不同
1.python2中,所有的类型对象都是直接抛出,而在python3中,只有继承了BaseException的对象才可以抛出。
2.在python2版本中,捕获异常的语法是“except Exception,var:”;而在3中,新引入了as这个关键字从而变更成了‘except Exception as …’,。
3.在pyhton3中,处理异常时候的“raise Exception(args)”代替了“raise Exception,args”这也是2与3之间语法的一些差异。
4.在python3中取消了异常类的序列行为和message属性。

#python2
>>> try:
	  raise TypeError,"类型错误"
	except TypeError,err:
	  print err.message #print语句与3有区别

#python3
>>> try:
 		raise TypeError("类型错误")
	except TypeError as err:
		print(err) #python3使用print()函数

三、python2与python3的默认编码不同。
1.python2默认使用的是ASCLL编码。而python3默认使用的UTF-8编码,python3可以很好的支持中文以及其他的英文字符。

四、python中除法运算。
在python中的除法有两种运算符。分别是/和//。

# / 运算符
#python2
>>>1/2
0
>>>1.0/2
0.5
#python2中,使用运算符 / 进行除法运算,整数相除的结果仍是一个整数,浮点数除法会保留小数点部分.

#python3
>>>1/2
0.5
#在Python3中,使用 / 运算符,整数之间做除法运算,结果也会是浮点数。

#=================================================
# // 运算符
#python2
>>>-1//2
-1
#python3
>>>-1//2
-1
#使用运算符 // 进行的除法运算叫做 floor 除法,也就是输出不大于结果值的一个最大的整数(向下取整)。此运算符的用法在Python2和Python3中是一样的。

五、不等于运算符。
pyhon2中的不等于有两种方法一个是!=另一个是<>。但是在python3中只有!=这一种方法。

六、数据类型
python3在数据类型上也做出了一些改变。
1.python3中新增bytes类型,字符串对象和bytes对象可以使用.encode() 或者 .decode()方法相互转化。
2.python3去除了 long 类型,现在只有一种整形 int。
3.Python 3.x 中,字典的 keys()、items() 和 values() 方法用返回迭代器,之前的 iterkeys() 等函数被废弃。

以上是几个python3对于python2的常见修改,其他修改可以在使用过程中慢慢的接触到。