python2与_python2和python3的区别
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
1.字符串類型
python中有兩種字符類型:字節字符串和文本字符串。
版本python2python3
字節字符串strbytes
文本字符串Unicodestr
2.默認字符
python2中默認的字符串類型默認是ASCII,python3中默認的字符串類型是Unicode。
3.print
python2中,print是個特殊語句,python3中print是函數。
python2:print 'hello word!'
python3:print('hello word!',file=sys.stderr)
4.除法/
python2中/的結果是整型,python3中是浮點類型。
5.導入
python2中的包導入順序:標準庫—相對倒入(即當前目錄)—絕對導入(sys.path)
python3中的包導入順序:標準庫—絕對導入(如果想要相對導入,使用from .moudel)
6.類
python2中默認類是舊式類,需要顯式繼承新式類(object)來創建新式類。
python3中完全移除舊式類,所有類都是新式類,但仍可顯式繼承object類。
7.元類聲明
python2中聲明元類:__metaclass__ = MetaClass
python3中聲明元類:class newclass(metaclass=MetaClass):pass
8.異常
python2中引發異常:raise ValueError,'Invalid value'
python3中引發異常:raise ValueError('Invalid value')——在python2中也生效
9.處理異常
python2中處理異常:
try:
raise ValueError,'Invalid value'
except ValueError,e:
pass
python3中處理異常:
try:
raise ValueError,'Invalid value'
except ValueError as e:#在python2中也生效
pass
python2中異常鏈會丟失原始異常信息,即:處理B異常時引發了A異常,B異常信息會丟失。
python3中將原始異常信息賦值給__context__屬性。并且可以顯式指定一個異常作為另一個異常的子句:raise DatabaseError() from IOError()
10.字典
python2中的dict類中的keys、values和items均返回list對象,iterkeys、itervalues和iteritems返回生成器對象。
python3中移除了list、只返回一個生成器的對象,只保留視圖(生成器),但方法名為:keys、values和items。
11.模塊合并
python2中的StringIO和cStringIO合并為python3中的io
python2中的pickle和cPickle合并為python3中的pickle。
python2中的urllib、urllib2和urlparse合并為python3中的urllib
12.重命名模塊
python3python2
ConfigparserConfigParser
filteritertools.ifilter
inputraw_input
mapitertools.imap
rangexrange
functools.reducereduce
socketserverSocketServer
zipitertools.izip
---------------------
來源:CSDN
原文:https://blog.csdn.net/ljl6158999/article/details/78983725
總結
以上是生活随笔為你收集整理的python2与_python2和python3的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Web前端笔记-解决Vue编写的输入框(
- 下一篇: 基于asp.net的音乐分享网站的设计与