python3與python2的差異

2021-10-10 08:00:53 字數 2421 閱讀 6300

首先python2是python3的下位版本,目前應該是到2.7版本截止,往後不會再發展但會一直對python2有維護。

針對py3和py2的差異分為以下幾點:

python3將python2用來檢查字典的鍵的方法has_key()去除掉了,與之對應新使用的是key in d這樣的「in」運算子,這個功能在python2中也可以使用。

內建函式range()是我們熟悉的老朋友,用於生成正在迴圈的序列中,

用法:

range(start, stop[, step])
而在python2中,更推薦使用xrange()函式,這是因為range()函式生成的是列表物件,如果元素太多會很佔記憶體,而xrange()是返回類似於迭代器的物件,當for語句需要迴圈時就可以直接生成下乙個元素並返回,就節省了很多空間。

but,現在python3中也range()也開始返回迭代器物件了,所以,xrange()也就沒有存在的必要了(這算是借屍還魂吧哈哈)

相似地,python3中,map(),filter(),zip()這樣的函式也都開始返回迭代器了

利用「from __future__ import print_function」可以將python2的print語句更改為print()函式

利用「from __future__ import unicode_literals」可以將字串(str)型別的字面量作為字串來處理。

python2中有兩種字串型別:

·str字串      

·unicode字串

unicode字串的定義:

ustr=u"hello 黔肆"

print(ustr)

str和unicode編碼時,在計算字元時的方法是不一樣的:

import sys

ustr=u"hello ペキン"

str1="hello ペキン"

bytestr2=str1.encode()

print(ustr,len(ustr),sys.getsizeof(ustr))

print(str1,len(bytestr2),sys.getsizeof(str1))

#輸出:

#hello ペキン 9 92

#hello ペキン 15 92

到python3.3後也可以支援用u「***」來定義unicode字串了

python 2.x預設的字元編碼是ascii,預設的檔案編碼也是ascii。

python 3.x預設的字元編碼是unicode,預設的檔案編碼是utf-8。

python3的print()中新增了賦予引數來控制執行,如不換行和更改輸出位置:

print("沒完呢",end="")

print("ahhhh",file="***.txt")

完整的引數使用下:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=false)
python2中根據數值大小分為兩種資料型別:依存於c語言long的int和在記憶體允許範圍內盡最大可能處理的long型別(在字面量後加l)

python3將其綜合成與py2中的long型別相當的型別,廢除了字面量後加l的用法

python2與c語言的整形除法類似,1/2得到是0

python3更改為1/2得到不再是取整的整數,而是float:0.5,而用1//2來代替求商取整

python2中10的八進位制的記載是:022

python3中10的八進位制的記載是:0o22     

python2中沒有二進位制的字面量

python3中增加二進位制的字面量:0b110  (6)

python2.6之前是這樣的格式:

try:                        #捕捉異常的處理

pass

except oserror,e: #異常發生時的處理

pass

python2.7及之後仍可使用上述格式,python3新增以下格式:

try:                        #捕捉異常的處理

pass

except oserror as e: #異常發生時的處理

pass

「as e」也可省略 

python2中對於不用物件的比較也是可以的,而且一致返回true。例如:

>>>1>"1"?

>>>true

python3中不同的物件之間就不能比較,會出現異常。

Python 2 與Python 3的區別

1.除號 與整除號 python 2中,是整除 python 3中,是常規除法,是整除 2.raw input與input python 2用raw input python 3用input 都表示輸入函式。3.print與print 以及逗號 python 2中,print my print na...

Python3 與 Python2 的不同

至於學習 python3 和 python2,我了解到的觀點是這樣的。1 現在很多的專案都還是在用 python2,學習 python2 還是有意義的 2 python2 在 python 的官方已經公布了在什麼什麼時間停止維護,所以對於新手來說,學習 python2 的價值不是很大,所以直接 py...

Python2 與Python3 的區別

1.print函式 py2中print是乙個語法結構,如 print value py3中print是乙個函式,如 print value 2.除法運算 py2中兩個整數除法得到的是0,要想得到浮點數結果,則被除數或除數二者要有乙個是浮點數才行。如 print 1 4 0 print 1 4.0.2...