python2和python3的区别

1.print

  • print语句没有了,取而代之的是print()函数。
python2 print "fish" 
python3 print("fish")

2.Unicode

python2默认是 ASCII str() 类型,python3默认Unicode类型即utf-8

python2中
>>> str = "我爱北京天安门"
>>> str
'\xe6\x88\x91\xe7\x88\xb1\xe5\x8c\x97\xe4\xba\xac\xe5\xa4\xa9\xe5\xae\x89\xe9\x97\xa8'
>>> str = u"我爱北京天安门"
>>> str
u'\u6211\u7231\u5317\u4eac\u5929\u5b89\u95e8'

python3中
>>> str = "我爱北京天安门"
>>> str
'我爱北京天安门'

3.除法运算

python2中的除法
>>> 1 / 2
0
>>> 1.0 / 2.0
0.5
python3中的除法
>>> 1/2
0.5

4.异常

在 Python 3 中处理异常也轻微的改变了,在 Python 3 中我们现在使用 as 作为关键词。

捕获异常的语法由 except exc, var 改为 except exc as var。

使用语法except (exc1, exc2) as var可以同时捕获多种类别的异常。 Python 2.6已经支持这两种语法。

  1. 在2.x时代,所有类型的对象都是可以被直接抛出的,在3.x时代,只有继承自BaseException的对象才可以被抛出。
  2. 2.x raise语句使用逗号将抛出对象类型和参数分开,3.x取消了这种奇葩的写法,直接调用构造函数抛出对象即可。
    在2.x时代,异常在代码中除了表示程序错误,还经常做一些普通控制结构应该做的事情,在3.x中可以看出,设计者让异常变的更加专一,只有在错误发生的情况才能去用异常捕获语句来处理。

5. xrange

python3中由range代替了xrange,在三中xrange会报错。

6.数据类型

python3去除了long类型,现在只有一种整型——int。

7.input

python3中input输入的数据,统统都是字符串型,python2中输入的数据是什么类型,该数据就是什么类型。python2中的raw_input同python3中的input类似。

8.性能方面

python2的性能要比python3高30%左右。


有疏漏的地方大家发消息,我会进行修改。Thank you!

你可能感兴趣的:(python2和python3的区别)