1 回答

嗶嗶one
TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
Python的3.0版本,常被稱為Python 3000,或簡(jiǎn)稱Py3k。相對(duì)于Python的早期版本,這是一個(gè)較大的升級(jí)。 為了不帶入過(guò)多的累贅,Python 3.0在設(shè)計(jì)的時(shí)候沒(méi)有考慮向下相容。 許多針對(duì)早期Python版本設(shè)計(jì)的程式都無(wú)法在Python 3.0上正常執(zhí)行。 為了照顧現(xiàn)有程式,Python 2.6作為一個(gè)過(guò)渡版本,基本使用了Python 2.x的語(yǔ)法和庫(kù),同時(shí)考慮了向Python 3.0的遷移,允許使用部分Python 3.0的語(yǔ)法與函數(shù)。 新的Python程式建議使用Python 3.0版本的語(yǔ)法。 除非執(zhí)行環(huán)境無(wú)法安裝Python 3.0或者程式本身使用了不支援Python 3.0的第三方庫(kù)。目前不支援Python 3.0的第三方庫(kù)有Twisted, py2exe, PIL等。 大多數(shù)第三方庫(kù)都正在努力地相容Python 3.0版本。即使無(wú)法立即使用Python 3.0,也建議編寫相容Python 3.0版本的程式,然后使用Python 2.6, Python 2.7來(lái)執(zhí)行。 Python 3.0的變化主要在以下幾個(gè)方面: 1.print語(yǔ)句沒(méi)有了,取而代之的是print()函數(shù) 2.在 Python 3,我們最終有了 Unicode (utf-8) 字符串,以及一個(gè)字節(jié)類:byte 和 bytearrays。 3.除法運(yùn)算對(duì)于整數(shù)之間的相除,結(jié)果也會(huì)是浮點(diǎn)數(shù)。 4.在 Python 3 中處理異常也輕微的改變了,在 Python 3 中我們現(xiàn)在使用 as 作為關(guān)鍵詞。捕獲異常的語(yǔ)法由 except exc, var 改為 except exc as var。使用語(yǔ)法except (exc1, exc2) as var可以同時(shí)捕獲多種類別的異常。 Python 2.6已經(jīng)支持這兩種語(yǔ)法。 5.range() 是像 xrange() 那樣實(shí)現(xiàn)以至于一個(gè)專門的 xrange() 函數(shù)都不再存在(在 Python 3 中 xrange() 會(huì)拋出命名異常)。 6. 必須寫成0o777,原來(lái)的形式0777不能用了;二進(jìn)制必須寫成0b111。新增了一個(gè)bin()函數(shù)用于將一個(gè)整數(shù)轉(zhuǎn)換成二進(jìn)制字串 7.Python 3.x中去掉了<>, 只有!=一種寫法, 8.Python 3.x 中去掉了``這種寫法,只允許使用repr函數(shù) 9.多個(gè)模塊被改名 舊的名字 新的名字 _winreg winreg ConfigParser configparser copy_reg copyreg Queue queue SocketServer socketserver repr reprlib 10. 1)Py3.X去除了long類型,現(xiàn)在只有一種整型——int,但它的行為就像2.X版本的long 2)新增了bytes類型,對(duì)應(yīng)于2.X版本的八位串,定義一個(gè)bytes字面量的方法 3)dict的.keys()、.items 和.values()方法返回迭代器,而之前的iterkeys()等函數(shù)都被廢棄。同時(shí)去掉的還有 dict.has_key(),用 in替代它吧 。
添加回答
舉報(bào)
0/150
提交
取消