python版本2和3有什么不同

介绍

小编给大家分享一下python版本2和3有什么不同,相信大部分人都还不怎么了解,因此分享这篇文章给大家学习,希望大家阅读完这篇文章后大所收获、下面让我们一起去学习方法吧!

对比python2和python3,两者的差异如下:

1。Python3对Unicode字符的原生支持。

Python2中使用ASCII码作为默认编码方式导致字符串有两种类型str和Unicode, Python3只

支持Unicode的string.Python2和Python3字节和字符对应关系为:

2。Python3采用的是绝对路径的方式进行导入

Python2中相对路径的进口会导致标准库导入变得困难(想象一下,同一目录下有文件。py,如

何同时导入这个文件和标准库文件).Python3中这一点将被修改,如果还需要导入同一目录的文件必

须使用绝对路径,否则只能使用相关导入的方式来进行导入。

推荐学习《python教程》

3。Python2中存在老式类和新式类的区别,Python3统一采用新式类。新式类声明要求继承对象,

必须用新式类应用多重继承。

4。Python3使用更加严格的缩进.Python2的缩进机制中,1个标签和8个空间是等价的,所

以在缩进中可以同时允许选项卡和空间在代码中共存。这种等价机制会导致部分IDE使用存在问题。

Python3中1个选项卡只能找另外一个选项卡替代,因此选项卡和空间共存会导致报错:TabError:

中使用制表符和空格缩进不一致。

<强>废弃类差异

1。打印语句被Python3废弃,统一使用打印函数

2。exec语句被python3废弃,统一使用exec函数

3。execfile语句被Python3废弃,推荐使用exec(打开(“。/filename") .read ())

4。不相等操作符“& lt;在“被Python3废弃,统一使用“!=?/p>

5。长整数类型被Python3废弃,统一使用int

6。xrange函数被Python3废弃,统一使用范围,Python3中范围的机制也进行修改并提高

了大数据集生成效率

7。Python3中这些方法再不再返回列表对象:词典关联的键()值(),(),zip ()

map()、过滤器(),但是可以通过强列表行转换:

1。mydict={“a": 1、“b": 2,“c": 3}

2。mydict.keys () # & lt;内置方法dict对象的键(0 x000000000040b4c8>

3。列表(mydict.keys()) # & # 39;一个# 39;& # 39;c # 39;, & # 39; b # 39;]

8。迭代器迭代器的next()函数被Python3废弃,统一使用下(iterator)

9。raw_input函数被Python3废弃,统一使用输入函数

10。字典变量的has_key函数被Python废弃,统一使用的关键词

11。文件函数被Python3废弃,统一使用开放来处理文件,可以通过io。IOBase检查文件类型

12。申请函数被Python3废弃

13。异常StandardError被Python3废弃,统一使用异常

<强>修改类差异

1。浮点数除法操作符“/焙汀?/钡那?/p>

":

Python2:若为两个整形数进行运算,结果为整形,但若两个数中有一个为浮点数,则结果为

浮点数;

Python3:为真除法,运算结果不再根据参加运算的数的类型。

“//?

Python2:返回小于除法运算结果的最大整数;从类型上讲,与“/霸怂惴祷乩嘈吐呒恢隆?/p>

Python3:和Python2运算结果一样。

2。异常抛出和捕捉机制区别Python2

1。提高IOError,那么“文件error"#抛出异常

2。除了NameError,犯错:#捕捉异常

Python3

1。提高IOError(“文件error")那么#抛出异常

2。除了NameError犯错:#捕捉异常

3。对循环中变量值区别

Python2,为循环会修改外部相同名称变量的值

1。i=1

2。打印(& # 39;理解:& # 39;,我因为我在范围(5)))

3。打印(& # 39;后:我=& # 39;,我)#我=4

Python3,为循环不会修改外部相同名称变量的值

1。i=1

2。打印(& # 39;理解:& # 39;,我因为我在范围(5)))

3。打印(& # 39;后:我=& # 39;,我)# i=1

python版本2和3有什么不同