python2與python3區別錄

2021-10-13 03:06:18 字數 1968 閱讀 7109

1、簡述你了解的python2和python3的區別?

-

2.x,python直譯器預設使用ascii編碼(只包含字母、數字、英文標點)

-3.x,python直譯器預設使用utf-

8編碼(所有文字都可以包含)

- sys.getdefaultencoding(

)# 檢視預設編碼

在 python2 中,字串有兩個型別,乙個是 unicode,乙個是 str,前者表示文字字串,後者表示位元組序列

不過兩者並沒有明顯的界限,開發者也感覺很混亂,不明白編碼錯誤的原因。

在 python3 中兩者做了嚴格區分,分別用 str 表示字串,byte 表示位元組序列,

任何需要寫入文字或者網路傳輸的資料都只接收位元組序列,這就從源頭上阻止了編碼錯誤的問題。

py3 中消除了py2中位元組碼和字串混亂的定義

str 就是字串 bytes 才是位元組碼

在 py2 中 str 是位元組碼 unicode 才是字串

py3 py2

位元組碼 bytes

str 字串 str

unicode

在python2.x中有兩種整型:int

/long

int,可表示的範圍:-

9223372036854775808~9223372036854775807

long,整數值超出int範圍之後自動會轉換為long型別(無限制)。

在python3.x中有一種整型:int ,無限制。

在python2.x中如果出現除法:9/2

=49.0/2=

4 匯入包來解決

from __future__ import division

9/2=4.5

在python3.x中如果出現除法:9/2

=4.5

py2:

print

"hello"

py3:

print

("hello"

)

py2:

v =raw_input

("請輸入使用者名稱"

) py3:

v =input

("..."

)

py2:

佔位符: data =

"我叫%s,今年%d歲,在%s工作。"%(

"alex",18

,"北京"

)format:data =

"我叫,今年歲,在工作。"

.format

("alex",18

,"北京"

) py3:

f:name =

"andy"

age =

18 data = f"我叫,今年"

format:data =

"我叫,今年歲,在工作。"

.format

("alex",18

,"北京"

)

2、python2中的xrange和range的區別?
在python2中:

-range

(1000000000000

),在記憶體中幫我們立即建立1000000000000個整數。

-xrange

(1000000000000

),不會再記憶體中立即建立,而是在我們對xrange生成的結果進行for迴圈獲取時,才會獲取乙個生成一起。

在python3中:

-range

(1000000000000

),不會再記憶體中立即建立,而是在我們對range生成的結果進行for迴圈獲取時,才會獲取乙個生成一起。

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