在python這門語言中有兩個(gè)重要的版本,一個(gè)是python2,一個(gè)是python3。
Python 2于2000年10月16日發(fā)布,穩(wěn)定版本是Python 2.7。Python 3于2008年12月3日發(fā)布,不完全兼容Python 2。對于初學(xué)者來說,要選擇python3進(jìn)行學(xué)習(xí),畢竟它代表未來。
在公司產(chǎn)品開發(fā)中,有個(gè)別產(chǎn)品可能開發(fā)比較早,采用的是python2.x版本開發(fā)的,對于沒有接觸過python2.x版本的人來說,看到或修改這些代碼會(huì)感覺很怪異,其實(shí)我們只要掌握python2和python3的主要區(qū)別就夠了,下面勇哥給大家分享下python2和python3的主要區(qū)別。
1、 print用法差異比較大
如果要打印某個(gè)信息:
2、 用戶輸入函數(shù)不同
用戶輸入不同,python3中只有input(),它返回的都是str類型,python2中的raw_input()是用來接收字符串的,python2中也有input(),輸入字符串時(shí)需要帶上引號(hào),表示你輸入的是字符串,輸入數(shù)字不需帶。
3、 字符串編碼的改變
Python2默認(rèn)ASCII編碼方式,但是ASCII編碼無法對中文等字符進(jìn)行有效編碼,因此在涉及到中文及其它字符編碼問題時(shí),ASCII不僅無能為力,經(jīng)常會(huì)帶來意想不到的錯(cuò)誤。Python 3 默認(rèn)采用了 UTF-8 作為默認(rèn)編碼,因此不需要在文件頂部寫 # coding=utf-8 。
4、整數(shù)類型的改變
python3 徹底廢棄了 long+int 雙整數(shù)實(shí)現(xiàn)的方法, 統(tǒng)一為 int , 支持高精度整數(shù)運(yùn)算。int的表示范圍相當(dāng)于其他語言中的long long int類型。
5、除法符號(hào)表示的意義不同
原來python2中執(zhí)行1/2(兩個(gè)整數(shù)相除)結(jié)果是0,現(xiàn)在python3中執(zhí)行就是0.5了
6、Python2以前沒有布爾型,0表示False,1表示True;Python3 把 True 和 False 定義成關(guān)鍵字,它們的值是 1 和 0,可以和數(shù)字運(yùn)算。
7、pthony2中range()內(nèi)置函數(shù)直接生成列表(量大占內(nèi)存會(huì)死機(jī)),pthony3中只有range()和python2中的xrang()一樣都只生成一個(gè)生成器。python3中沒有xrange()這個(gè)內(nèi)置函數(shù)。
8、創(chuàng)建類時(shí),python2分為經(jīng)典類和新式類,新式類就是繼承object的類,經(jīng)典類是沒有繼承的類,而python3中全部是新式類,默認(rèn)繼承object。在屬性查找時(shí),經(jīng)典類查找方式為深度優(yōu)先,新式類是廣度優(yōu)先。
-
python
+關(guān)注
關(guān)注
56文章
4797瀏覽量
84695
發(fā)布評論請先 登錄
相關(guān)推薦
評論