python2.x與python3.x的區別

字符串類型
python中有兩種字符類型:字節字符串和文本字符串。python

python2
字節字符串 str bytessocket

python3
文本字符串 Unicode str函數

默認字符
python2中默認的字符串類型默認是ASCII,python3中默認的字符串類型是Unicode。
True和False
py2:True 和 False 在 Python2 中是兩個全局變量,能夠爲其賦值或者進行別的操做,初始數值分別爲1和0,雖然修改是違背了python設計的原則,可是確實能夠更改url

輸入函數
py2:input_raw()設計

py3:input()
printcode

python2中,print是個特殊語句,python3中print是函數。server

python2:print 'hello word!'對象

python3:print('hello word!',file=sys.stderr)繼承

除法 /ip

python2中/的結果是整型,python3中是浮點類型。

導入

python2中的包導入順序:標準庫—相對倒入(即當前目錄)—絕對導入(sys.path)

python3中的包導入順序:標準庫—絕對導入(若是想要相對導入,使用from .moudel)

python2中默認類是舊式類,須要顯式繼承新式類(object)來建立新式類。

python3中徹底移除舊式類,全部類都是新式類,但仍可顯式繼承object類。
在使用super()的不一樣
py2:必須顯示的在參數中寫上基類

py:直接無參數調用便可
元類聲明

python2中聲明元類:metaclass = MetaClass

python3中聲明元類:class newclass(metaclass=MetaClass):pass

異常

python2中引起異常:raise ValueError,'Invalid value'

python3中引起異常:raise ValueError('Invalid value')——在python2中也生效

字典

python2中的dict類中的keys、values和items均返回list對象,iterkeys、itervalues和iteritems返回生成器對象。

python3中移除了list、只返回一個生成器的對象,只保留視圖(生成器),但方法名爲:keys、values和items。

模塊合併

python2中的StringIO和cStringIO合併爲python3中的io

python2中的pickle和cPickle合併爲python3中的pickle。

python2中的urllib、urllib2和urlparse合併爲python3中的urllib

重命名模塊

python3 python2
Configparser ConfigParser
filter itertools.ifilter
input raw_input
map itertools.imap
range xrange
functools.reduce reduce
socketserver SocketServer
zip itertools.izip

不等運算符
Python 2.x中不等於有兩種寫法 != 和 <>

Python 3.x中去掉了<>, 只有!=一種寫法

相關文章
相關標籤/搜索