一、效能
python3.0速度比python2.0慢一些
二、編碼
py3.x原始碼檔案預設使用utf-8編碼,這就使得以下**是合法的:
>>中國 = 'china'
>>print(中國)
china
三、語法
1、python3+ dict的.keys()、.items 和.values()方法返回迭代器,而之前的iterkeys()等函式都被廢棄。同時去掉的還有 dict.has_key(),用 in替代它吧,迭代器操作很像set,即不能使用索引,需要轉成list形式(list(dic.items)[index]。而python2+ dic.items() 返回的是list。
2、比較函式。python2+:cmp(a,b)。
python3+:
operator.lt(a, b) #a operator.le(a, b) #a<=b
operator.eq(a, b) #a=b
operator.ne(a, b)
operator.ge(a, b)
operator.gt(a, b)
operator.__lt__(a, b)
operator.__le__(a, b)
operator.__eq__(a, b)
operator.__ne__(a, b)
operator.__ge__(a, b)
operator.__gt__(a, b)
3、 python reload(sys)找不到,name 『reload』 is not defined
python2:
reload
(sys)
sys.setdefaultencoding
("utf-8")
在3.x被替換為
import importlib
importlib.reload(sys)
sys.setdefaultencoding(「utf-8」) 這種方式在3.x中被徹底遺棄
4、去除print語句,加入print()函式實現相同的功能。同樣的還有 exec語句,已經改為exec()函式
例如:
2.x: print 「the answer is」, 2*2
3.x: print(「the answer is」, 2*2)
2.x: print x, # 使用逗號結尾禁止換行
3.x: print(x, end=」 「) # 使用空格代替換行
2.x: print # 輸出新行
3.x: print() # 輸出新行
2.x: print >>sys.stderr, 「fatal error」
3.x: print(「fatal error」, file=sys.stderr)
2.x: print (x, y) # 輸出repr((x, y))
3.x: print((x, y)) # 不同於print(x, y)!
5、整除:python3中/表示真除,%表示取餘,//結果取整;python2中帶上小數點/表示真除,%表示取餘,//結果取整
6、xrange
在 python 3 中,range() 是像 xrange() 那樣實現以至於乙個專門的 xrange() 函式都不再存在(在 python 3 中xrange() 會丟擲命名異常)。
這裡順便講一下python2的range()和xrange()的一些區別
a). range 生成乙個list。
b).xrange()生成生成器,迭代時元素是逐個被建立的。所有xrange()節省記憶體
c).xrange()不可以使用不支援列表切片,所以不用擔心越界問題
d).xrange()生成器和普通生成器稍有區別,對於同乙個xrange物件,對它進行多次迭代,每次都會從頭開始。而常規生成器元素被生成出來之後就從生成器中剔除了
四、第三方庫
1、在windows下安裝python第三方庫有時很麻煩,尤其是python2。
python3比python2在windows下安裝第三方庫就方便很多。
比如:tensorflow、fasttext等等
python3和python2的區別
1.效能 py3.0執行 pystone benchmark的速度比py2.5慢30 guido認為py3.0有極大的優化空間,在字串和整形操作上可 以取得很好的優化結果。py3.1效能比py2.5慢15 還有很大的提公升空間。2.編碼 py3.x原始碼檔案預設使用utf 8編碼,這就使得以下 是合...
Python2和Python3的比較
python2 python3 print fish print fish unicode 是單獨的 unicode utf 8 字串 b b china byte 和 bytearrays type b type bytes s b.decode 轉化成 string 型別b1 s encode ...
python3和python2的區別
這個星期開始學習python了,因為看的書都是基於python2.x,而且我安裝的是python3.1,所以書上寫的地方好多都不適用於python3.1,特意在google上search了一下3.x和2.x的區別。特此在自己的空間中記錄一下,以備以後查詢方便,也可以分享給想學習python的frie...