python 2 x 與3 x 的區別總結

2022-08-19 02:21:13 字數 1575 閱讀 1192

巨集觀上:2.x 原始碼不規範,混亂,冗餘。

3.x 原始碼優美清晰,統一標準,去除了冗餘。

預設編碼方式:2.x ascii碼  3.x utf-8

用2.x 處理中文時,需要宣告編碼方式(由於cmd終端預設編碼為gbk,所以宣告為utf-8時,在cmd終端上,中文顯示為亂碼。)

#

-*- encoding:utf-8 -*-

資料型別

整型,2.x分int和long兩種,3.x只有int型別。

運算子

不等於,2.x可以使用<>和!=;3.x只能使用!=

print()方法:

2.x可以不用括號,寫成

for letter in

'python':

print

'當前字母:

', letter

3.x必須有括號

print('

當前字母:

', letter)

input方法:

2.x 中,input()會處理成和輸入資料相應的型別,是最終目標位址裡內容的資料型別

3.x 中,input()得到的資料統一都是字串。

但2.x中,有raw_input()方法,和3.x中的input()作用相同。可見,2.x中,input()有著更複雜的內部實現,用來轉化資料型別。

range()函式:

2.x中,xrange()等價於3.x的,range()返回乙個數字的列表。

3.x中,range()返回可迭代物件,可用list()轉化為列表。

dict內建方法:

ps. 3.6之前,字典是無序的;3.6(包括3.6)之後,有序。這個有序和無序的區別是直譯器造成的。字典資料型別本身還是無序的。

dict.popitem()無序字典下,是隨機刪除;有序字典下,是刪除最後一對。

dict.keys()

2.x中,返回列表型別的鍵序列

3.x,返回dict_keys型別的資料,可用list()轉換為列表型別

迭代器生成器:

3.x 支援 __iter__()和__next__()

2.x 支援__iter__(),next()

經典類新式類:

2.x 中存在經典類和新式類,預設是經典類,可通過繼承object宣告為新式類

經典類在多繼承關係中,深度優先演算法

新式類的super只支援super(子類名,self)

3.x 中只有新式類,預設繼承object

新式類在多繼承中,用c3演算法檢索父類,可用mro()方法獲取檢索序列,super()方法獲取序列的相鄰的下乙個類物件

c3演算法:兩個原則缺一不可,順序(序列)和效率(路徑盡量短)

continue......

python2 x與3 x除法的區別

v2.2 以前,除 運算子的返回有兩種可能情況,分別是整型和浮點型。運算元的不同,是影響計算結果資料型別的關鍵。以 a b 為例,a b均為整型,則結果返回整型 a b任意乙個是浮點型的話,則結果就是浮點型。python v2.7 3 2,3.0 2,3.0 2.0 1,1.5,1.5 v2.2 以...

python2 x和3 x的區別

這個星期開始學習python了,因為看的書都是基於python2.x,而且我安裝的是python3.1,所以書上寫的地方好多都不適用於python3.1,特意在google上search了一下3.x和2.x的區別。特此在自己的空間中記錄一下,以備以後查詢方便,也可以分享給想學習python的frie...

python2 x與3 x的主要區別筆記

coding utf 8 python3.x新的東西 1,future 模組 2,print函式 python2.x print hello world is acceptable in python 2 print x,python3.x print hello world in python 3...