Python2.x与3.x的区别

2.x与3.x 的区别从以下8个方面来讲:性能、编码、语法、字符串与字节串、数据类型、面向对象、异常、其他方面。


1、性能

python3.x起始比python2.x效率要低,但是python3.x有极大的优化空间,效率正在追赶,目前已经不差多少。

2、编码

python3.x原码文件默认使用utf-8,使变量名更为广阔,可以使用汉字作为变量,但是不建议使用。

3、语法

3.1、去除了<>,改用!=

3.2、/

    python2.x整型触发返回整数

    python3.x整型触发返回浮点数,整除使用//

3.3、加入了nonlocal语句

    在闭包的情况下,想使用外部的变量值。

3.4、去除了print语句,加入了print()函数

print("sunck", end=" ")

print("kaige")

3.5、去除了raw_input语句,加入了input()函数

3.6、新的super(),可以不再给super()传递参数

class A(object):

    pass

class B(A):

    def __init__(self):

        super().__int__()

3.7、改变了顺序操作符的行为,比如x<y,当x和y类型不匹配时抛出TypeError异常

3.8、新式的8进制数字变量

4、字符串和字节串

python2.x  字符串以8bit字符串存储

python3.x  字符串以16bit Unicode字符串存储,现在字符串只有str一种类型

5、数据类型

python3.x去除了long类型,现在只有一种整数类型int,但是它的行为就像2.x中long

新增了bytes类型,对应2.x版的八位串

6、面向对象

引入抽象基类

7、异常

所有异常都从BaseException继承,并删除了StardardError

python2

try:

    ……

except Exception e:

    ……

python3

try:

    ……

except Exception as e:

    ……

8、其他

python2.x中的xrange()在python3.x中名为range()

file类被废弃

python2可以使用file(path)、open(path)

在python3中只使用open()

猜你喜欢

转载自blog.csdn.net/qq_37235798/article/details/82348976