python3跟python2区别,python3与python2的区别
Python3引入了一系列向后不兼容的变化。大部分的不兼容主要是:去歧义和纠错。
1.字符串类型
python中有两种类型的字符:字节串和文本串。
版本 python2 python3 byte string str bytes text string Unicode str2.默认字符Python 2中默认的字符串类型是ASCII,python3中默认的字符串类型是Unicode。
3.print
在python2中,print是一个特殊的语句,在python3中,print是一个函数。
python2:打印“hello word!”
python3:print(hello word!,file=sys.stderr)
4.除法/
python2中/的结果是整型,python3中是浮点型。
5.导入
python2中的包导入顺序:标准库—相对倒排(即当前目录)—绝对导入(sys.path)
python3中的包导入顺序:标准库—绝对导入(如果要相对导入,使用from。moudel)
6.类
在python2中,默认类是旧类,因此需要显式继承新类(对象)来创建新类。
在python3中,旧类被完全移除。所有的类都是新类,但是object类仍然可以被显式继承。
7.元类声明
元类在python2中声明:__元类__=元类
元类:classnewclass(元类=元类):pass是在python3中声明的
8.异常
python2中引发异常:引发值错误,“无效值”
python3中抛出异常:提升值错误(“无效值”)3354在python2中也有效。
9.处理异常
python2中的异常处理:
尝试:
提升值错误,无效值
除了ValueError,e:
及格
python3中的异常处理:
尝试:
提升值错误,无效值
除了ValueError作为e:#在python2中也有效。
及格
python2中的异常链会丢失原来的异常信息,即处理异常B时抛出异常A,异常B信息会丢失。
将原始异常信息赋给python3中的__context__属性。并且可以显式地将一个异常指定为另一个异常的子句:从io error()引发数据库错误()
10.字典
python2中dict类的键、值和项都返回列表对象,iterkeys、itervalues和iteritems返回生成器对象。
在python3中,列表被删除,只返回一个生成器,只保留视图(生成器),但方法名是:键、值和项。
11.模块合并
python2中的Stringio和cStringio在python3中合并为IO。
python2中的Pickle和cPickle在python3中合并为Pickle。
python2中的Urllib、urllib2和urlparse合并成python3中的urllib。
12.重命名模块
python 3 python 2 config parser config parser filter ITER tools . ifilter input raw _ input map ITER tools . IMAP range xrange functools . reduce reduce socket server socket server zip ITER tools . izip13.其他
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。