Python 3.x 起始版本是Python 3.0,目前的最新版本是 3.3.3
Python之父Guido van Rossum談到了Python 3.0的構思:
一直以來,除非要打破向后兼容性,否則很多缺陷和錯誤都無法修復。因此,Python 3000將會作為第一個放棄向后兼容性的Python版本,目的就是要讓Python向著最好的語言前進。
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 2.6并無警告。程序可以通過一個2to3的轉換工具無縫遷移到Python 3.0。Python有一些很有用的測試模塊,包括doctext和unitest。確保在嘗試移植到Python3之前,對應用程序進行全面測試。要確保測試范圍盡可能大,而且程序在Python2.6上運行時,能通過測試并且沒有出現任何警告信息。
新的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 2.7被確定為最后一個Python 2.x版本,它除了支持Python 2.x語法外,還支持部分Python 3.1語法.
變化大致總結如下:
01.print() and exec() 函數
python舊版本里,print和exec是作為一語句出現,可以用print "Hello,World!", 來打印一個語句,在新版本里,print()和exec()作為一個函數出現,所以上面的寫就是錯誤的,應該寫成print ("Hello,World!")對于Java的程序員來說,這樣的改變應該是比較熟悉. System.out.print("Hello,World!");
代碼如下:
Old: >>>print "The answer is", 2*2
New: >>>print("The answer is", 2*2)
Old: >>>print x, # Trailing comma suppresses newline
New: >>>print(x, end=" ") # Appends a space instead of a newline
Old: >>>print # Prints a newline
New: >>>print() # You must call the function!
Old: >>>print >>sys.stderr, "fatal error"
New: >>>print("fatal error", file=sys.stderr)
Old: >>>print (x, y) # prints repr((x, y))
新聞熱點
疑難解答