python2和python3的區別

2021-09-26 18:40:32 字數 2880 閱讀 1500

python2跟python3的主要區別:

pytho3現在是主流使用的,python2已經不維護了

python2中沒有(),用引號『 』引起來;python3使用()

目前linux系統預設的python直譯器2.7

區別一:print

python2中:print是乙個語法結構,print 『hello world』或者print "hello world"都可以

python3中:print是乙個函式,print(「hello world」)或者print('hello world')都可以

括號裡面寫單引號或者雙引號都可以

在python2中

首先寫乙個純英文的.py檔案來測試:

發現python2可以直接呼叫

編寫乙個漢語的.py檔案測試:

發現python2不能直接識別中文

此時給檔案中加入宣告_*_coding:utf-8_*_

發現此時python2可以識別

在python3中

編寫乙個test.py檔案不加()測試:

發現不能識別

加入()測試:

發現可以識別,並且可以直接識別中文

python2誕生的時候沒有unicode,所以python2使用的預設編碼格式是asscii編碼,這也是python2經常出現編碼問題的原因之一。

python3中程式預設資料型別為unicode,所以直接將資料編碼(encode)成為想要轉換的資料型別(gbk,utf-8,gb18030,gb2312)

然後解碼成為對應的資料型別顯示在螢幕上。

也就是python2需要宣告,python3不需要宣告

python2列印漢字要宣告,python3列印漢字不需要宣告

區別二:除法運算

python2中整數相除的結果是乙個整數,把小數部分完全忽略掉,浮點數相除會保留小數點的部分得到乙個浮點數的結果,即所有的結果都是整數

python3中對於整數之間的相除,結果也會是浮點數,即所有相除的結果均用浮點數表示,//表示取整

python2中

所有相除的結果只顯示整數部分:

python3中

所有相除的結果均用浮點數表示

若只想要整數部分,則需使用//

區別三:字元型別不同

python 3中沒有長整形long的概念,字元型別有int ,str,boolean或float

python 2中的字元型別有long長整形,int,float,str,boolean

python3中的變數型別

整型:int

浮點型:float

字元型:str

bool型:bool

區別四:input

python2中的raw_input()與python3中的input()功能一樣,raw_input()會把使用者輸入的任何值都作為字串來對待;而python2中的input不能讀取非字串。

python3 中只有 input(),並且把使用者輸入的任何值都作為字串來對待

python2中

python3中

在bool中,0或者空為假,非0或不是空就為真

區別五:不等運算子

python 2中不等於有兩種寫法 != 和 <>

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

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...