python2和python3
『壹』 python 2和3的區別 import
Python
3.x引入一些Python2不兼容的關鍵字和函數,可以通過在
Python2
內置的模塊
__future__
導入專。建議如果你想在代碼屬中支持
Python3.x,使用__future__導入它。
例如,如果想在
Python2
中擁有
Python
3.x
整數的除法行為,添加下面的
import
語句
from
__future__
import
division
『貳』 python2和python3有什麼區別
python3就是Python的3.0版本,常被稱為Python 3000,或簡稱Py3k。相對於Python的早期版本,這是一個較大的升級。為了不帶專入過多屬的累贅,Python 3.0在設計的時候沒有考慮向下相容。
『叄』 python2和python3選哪個
如果是初學者,建議學習python2.x。
python3.x和python2.x已經並存很長時間了。兩個版本的python都在更新,但目前python2.x更加成熟。現在大部分第三方類庫都是基於2.x的,書和資料也是2.x居多,為你提供了豐富的學習材料。這已經不是一個重復造輪子的年代,日常的開發很大程度上會基於類庫。擁有豐富的類庫,是一門語言強大的標志,能極大地開發效率。
python3.x和2.x差別甚大,可以說它們幾乎是不同的語言。目前python3.x的應用不是那麼廣泛。由於兼容性的原因,很多老的程序都是基於2.x。由於python3的顛覆性,即使是比較新的應用也不會鋌而走險使用3.x。所以你應該毫不猶豫地選擇2.x。
官方提供一個將python2代碼轉換為python3代碼的小工具,叫2to3.py。如果你了安裝了python,那麼你一定擁有這個文件。如果你想體驗一把3.x,使用它是個不錯的選擇。
『肆』 python2和python3有哪些區別
1.性能
Py3.0運行 pystone benchmark的速度比Py2.5慢30%。Guido認為Py3.0有極大的優化空間,在字元串和整形操作上可
以取得很好的優化結果。
Py3.1性能比Py2.5慢15%,還有很大的提升空間。
2.編碼
Py3.X源碼文件默認使用utf-8編碼,這就使得以下代碼是合法的:
>>> 中國 = 'china'
>>>print(中國)
china
3. 語法
1)去除了<>,全部改用!=
2)去除``,全部改用repr()
3)關鍵詞加入as 和with,還有True,False,None
4)整型除法返回浮點數,要得到整型結果,請使用//
5)加入nonlocal語句。使用noclocal x可以直接指派外圍(非全局)變數
6)去除print語句,加入print()函數實現相同的功能。同樣的還有 exec語句,已經改為exec()函數
例如:
2.X: print "The answer is", 2*2
3.X: print("The answer is", 2*2)
2.X: print x, # 使用逗號結尾禁止換行
3.X: print(x, end=" ") # 使用空格代替換行
2.X: print # 輸出新行
3.X: print() # 輸出新行
2.X: print >>sys.stderr, "fatal error"
3.X: print("fatal error", file=sys.stderr)
2.X: print (x, y) # 輸出repr((x, y))
3.X: print((x, y)) # 不同於print(x, y)!
7)改變了順序操作符的行為,例如x<y,當x和y類型不匹配時拋出TypeError而不是返回隨即的 bool值
8)輸入函數改變了,刪除了raw_input,用input代替:
2.X:guess = int(raw_input('Enter an integer : ')) # 讀取鍵盤輸入的方法
3.X:guess = int(input('Enter an integer : '))
9)去除元組參數解包。不能def(a, (b, c)):pass這樣定義函數了
『伍』 Python 2 和 Python 3 都有什麼區別
> 1. print不再是語句,而是函數,比如原來是 print 'abc' 現在是 print('abc')
但是 python2.6+ 可以使用 from __future__ import print_function 來實現相同功能
> 2. 在Python 3中,沒有舊式類,只有新式類,也就是說不用再像這樣 class Foobar(object): pass 顯式地子類化object
但是最好還是加上. 主要區別在於 old-style 是 classtype 類型而 new-style 是 type類型
> 3. 原來1/2(兩個整數相除)結果是0,現在是0.5了
python 2.2+ 以上都可以使用 from __future__ import division 實現改特性, 同時注意 // 取代了之前的 / 運算
> 4. 新的字元串格式化方法format取代%
錯誤, 從 python2.6+ 開始已經在str和unicode中有該方法, 同時 python3依然支持 % 算符
> 6. xrange重命名為range
同時更改的還有一系列內置函數及方法, 都返回迭代器對象, 而不是列表或者 元組, 比如 filter, map, dict.items 等
> 7. !=取代 < >
python2 也很少有人用 < > 所以不算什麼修改
> 8. long重命名為int
不完全對, python3 徹底廢棄了 long+int 雙整數實現的方法, 統一為 int , 支持高精度整數運算.
> 9. except Exception, e變成except (Exception) as e
只有 python2.5 及以下版本不支持該語法. python2.6 是支持的. 不算新東西
> 10. exec變成函數
類似 print() 的變化, 之前是語句.
『陸』 初學者應該學python2還是python3
Python有Python2和Python3,很多人都會糾結選擇哪個版本進行學習?這兩個版本是不兼容的,版而且差異比較大,需要權多方面具體分析來決定。
從基本設計上來說,Python3的目的就是沒有代碼兼容的包袱情況下進行改進了Python,相對於Python2來說,Python3有很多的改進,更加容易理解,也更加合理。
而且從應用的角度上來說,pypy、web框架、科學計算包、scrapy等常用模塊都是支持Python3的,但是部分比較陳舊的庫已經沒有人進行維護,也就沒有支持Python3.
當我們進行日常使用的情況之下,可以直接寫Python2\3兼容的代碼,相對於來說,Python2對於舊庫的支持更多一些,至少在學界還是比較流行的。
『柒』 Python2與Python3的區別
類似的文章很多,一般也是檢些主要的區別。這個CSDN的一篇總結網頁鏈接。
如果是學習不用糾結,學python3就好,和xp、win7有點像,有差別,但不至於說會用XP不會用win7
『捌』 列舉python2和python3的區別
python2已經舍棄不用了,老古董,很少有人繼續使用python2