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