小编给大家分享一下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