新聞中心
想學(xué)習(xí)Python的人都會有一個困惑,那就是Python目前有兩個版本Python2和Python3,Python2與Python3有何區(qū)別,兩個版本該學(xué)習(xí)哪個呢?

成都創(chuàng)新互聯(lián)于2013年開始,先為八公山等服務(wù)建站,八公山等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為八公山企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
python3 和 python2 是不兼容的,而且差異比較大,python3是不向下兼容的,但是絕大多數(shù)組件和擴(kuò)展都是基于python2的。目前實(shí)際應(yīng)用中大部分暫不考慮 Python3,有的時候注意寫兼容 2/3 的代碼。用 Python2 為主的寫新代碼時要考慮以后遷移到 Python3 的可能性。據(jù)數(shù)據(jù)統(tǒng)計(jì)顯示目前10% 使用 Python 3;20% 既使用Python 2也使用Python 3,Python2用的更多;70% 使用Python 2。
其實(shí)python是linux上最常用的軟件之一,但是linux目前的版本大部分還是使用python2的,而且,在linux上依賴python2的程序更多一些,所以 Python3 要代替 python2 成為主流還需要幾年的時間。如果為了找工作還是學(xué)Python 2,學(xué)會了Python 2,由Python 2轉(zhuǎn)到python3也不難。
說了半天,Python2與Python3到底有何區(qū)別呢?
1.性能
Py3.0運(yùn)行pystone benchmark的速度比Py2.5慢30%。Guido認(rèn)為Py3.0有極大的優(yōu)化空間,在字符串和整形操作上可以取得很好的優(yōu)化結(jié)果。
Py3.1性能比Py2.5慢15%,還有很大的提升空間。
2.編碼
Py3.X源碼文件默認(rèn)使用utf-8編碼,這就使得以下代碼是合法的:
>>> 中國 = 'china' >>>print(中國) china
3. 語法
1)去除了<>,全部改用!=
2)去除``,全部改用repr()
3)關(guān)鍵詞加入as 和with,還有True,False,None
4)整型除法返回浮點(diǎn)數(shù),要得到整型結(jié)果,請使用//
5)加入nonlocal語句。使用noclocal x可以直接指派外圍(非全局)變量
6)去除print語句,加入print()函數(shù)實(shí)現(xiàn)相同的功能。同樣的還有 exec語句,已經(jīng)改為exec()函數(shù)
4. 字符串和字節(jié)串
1)現(xiàn)在字符串只有str一種類型,但它跟2.x版本的unicode幾乎一樣。 2)關(guān)于字節(jié)串,請參閱“數(shù)據(jù)類型”的第2條目
5.數(shù)據(jù)類型
1)Py3.X去除了long類型,現(xiàn)在只有一種整型——int,但它的行為就像2.X版本的long
2)新增了bytes類型,對應(yīng)于2.X版本的八位串,定義一個bytes字面量的方法如下:
>>> b = b'china' >>> type(b)
str對象和bytes對象可以使用.encode() (str-> bytes) or .decode() (bytes -> str)方法相互轉(zhuǎn)化。
>>> s = b.decode() >>> s 'china' >>> b1 = s.encode() >>> b1 b'china'
3)dict的.keys()、.items 和.values()方法返回迭代器,而之前的iterkeys()等函數(shù)都被廢棄。同時去掉的還有
dict.has_key(),用 in替代它吧
更多學(xué)習(xí)內(nèi)容,請點(diǎn)擊python學(xué)習(xí)網(wǎng)。
當(dāng)前名稱:創(chuàng)新互聯(lián)Python教程:新手用python2還是3
文章出自:http://www.dlmjj.cn/article/cocppho.html


咨詢
建站咨詢
