1 回答

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