python2.x和python3.x的區(qū)別

??一直想學(xué)python,沒有時間學(xué)(給自己的拖延找了個好借口腌零,哈哈), 最近終于行動起來了梯找,系統(tǒng)學(xué)一下python,當(dāng)然在學(xué)python之間先了解一下python的歷史益涧,python2.xpython3.x的區(qū)別:
??Python 的 3.0 版本锈锤,常被稱為 Python 3000,或簡稱 Py3k闲询。相對于 Python 的早期版本久免,這是一個較大的升級。
??為了不帶入過多的累贅扭弧,Python 3.0 在設(shè)計的時候沒有考慮向下相容阎姥。
??許多針對早期Python 版本設(shè)計的程式都無法在 Python 3.0 上正常執(zhí)行。
??為了照顧現(xiàn)有程式鸽捻,Python 2.6 作為一個過渡版本呼巴,基本使用了 Python 2.x 的語法和庫,同時考慮了向 Python 3.0 的遷移御蒲,允許使用部分Python 3.0 的語法與函數(shù)衣赶。
??新的 Python 程式建議使用 Python 3.0 版本的語法。
??除非執(zhí)行環(huán)境無法安裝 Python 3.0 或者程式本身使用了不支援 Python 3.0 的第三方庫删咱。目前不支持Python 3.0 的第三方庫有 Twisted, py2exe, PIL等屑埋。
??大多數(shù)第三方庫都正在努力地相容 Python 3.0 版本。即使無法立即使用 Python 3.0痰滋,也建議編寫相容 Python 3.0 版本的程式摘能,然后使用 Python 2.6, Python 2.7 來執(zhí)行续崖。
??Python 3.0 的變化主要在以下幾個方面:
1:print函數(shù)
python3.xprint語句沒有了,取而代之的是print()函數(shù)团搞,Python2.6Python2.7部分的支持這種形式的print語法严望。
python2.6python2.7里面,一下三種形式是等價的:

print "hello"
print  ("hello")  #注意print后面有個空格
print("hello") #注意print()不能帶有任何其它參數(shù)

如果python2.x版本想使用python3.xprint函數(shù)逻恐,可以導(dǎo)入_future_包像吻,該包禁用python2.xprint語句,采用python3.xprint函數(shù)复隆,如:

>>> name = "小李"
>>> print  name  #python2.x的print語句
>>> from _futrue_  import print_function #導(dǎo)入_future包
>>> print   name  #再這樣使用python2.x的print語句拨匆,會報錯
>>>print (name) #使用python3.x的print函數(shù)是正常的

python3.xpython2.x的許多兼容性設(shè)計的功能可以通過_future_這個包來導(dǎo)入。
2:Unicode
Python 2ASCII str()類型挽拂,Unicode()是單獨的惭每,不是byte類型。
Python 2Unicode(utf-8)字符串亏栈,以及一個字節(jié)類:bytebytearrays.
由于Python3.x源碼文件默認(rèn)使用utf-8編碼台腥,所以使用中文就更加方便了。
3:除法運算
Python 中的除法較其它語言顯得非常高端绒北,有套很復(fù)雜的規(guī)則黎侈。python中的除法有兩個運算符,///闷游,首先來說/除法:
Python2.x中/除法就是整數(shù)相除的結(jié)果是一個整數(shù)峻汉,把小數(shù)部分完全忽略掉,浮點數(shù)除法會保留小數(shù)點的部分得到一個浮點數(shù)的結(jié)果储藐。
如:

>>> 1 / 2
0
>>> 1.0 / 2.0
0.5

Python3.x中/除法不再這么做了俱济,對于整數(shù)之間的相除,結(jié)果也會是浮點數(shù)钙勃。
如:

>>> 1/2
0.5

而對于//除法蛛碌,這種除法叫做floor除法,會對除法的結(jié)果自動進(jìn)行一個floor操作辖源,在Python2.xPython3.x中是一致的蔚携。
3:異常
Python 3中處理異常也輕微的改變了,在 Python 3中我們現(xiàn)在使用 as作為關(guān)鍵詞克饶。
捕獲異常的語法由 except exc, var 改為 except exc as var酝蜒。
使用語法except (exc1, exc2) as var 可以同時捕獲多種類別的異常。 Python 2.6 已經(jīng)支持這兩種語法矾湃。

  1. 2.x 時代亡脑,所有類型的對象都是可以被直接拋出的,在3.x時代,只有繼承自BaseException的對象才可以被拋出霉咨。
  2. 2.x raise 語句使用逗號將拋出對象類型和參數(shù)分開蛙紫,3.x 取消了這種奇葩的寫法,直接調(diào)用構(gòu)造函數(shù)拋出對象即可途戒。
    2.x時代坑傅,異常在代碼中除了表示程序錯誤,還經(jīng)常做一些普通控制結(jié)構(gòu)應(yīng)該做的事情喷斋,在3.x 中可以看出唁毒,設(shè)計者讓異常變的更加專一,只有在錯誤發(fā)生的情況才能去用異常捕獲語句來處理星爪。
    3: xrange
    Python 2 中 xrange() 創(chuàng)建迭代對象的用法是非常流行的浆西。比如:for循環(huán)或者是列表/集合/字典推導(dǎo)式。
    這個表現(xiàn)十分像生成器(比如顽腾。"惰性求值")室谚。但是這個 xrange-iterable 是無窮的,意味著你可以無限遍歷崔泵。
    由于它的惰性求值,如果你不得僅僅不遍歷它一次猪瞬,xrange() 函數(shù) 比 range()更快(比如 for 循環(huán))憎瘸。盡管如此,對比迭代一次陈瘦,不建議你重復(fù)迭代多次幌甘,因為生成器每次都從頭開始。
    Python 3中痊项,range() 是像 xrange() 那樣實現(xiàn)以至于一個專門的 xrange() 函數(shù)都不再存在(在 Python 3xrange() 會拋出命名異常)锅风。
    4: 不等運算符
    Python 2.x中不等于有兩種寫法!=<>
    Python 3.x中去掉了<>, 只有!=一種寫法鞍泉。
    5:數(shù)據(jù)類型
    1>Python3.x去除了long類型皱埠,現(xiàn)在只有一種整型--int,但它的行為就像2.x版本的long咖驮。
    2>新增了bytes類型边器,對應(yīng)于2.X版本的八位串,定義一個bytes字面量的方法如下:
>>> b = b'china' 
>>> type(b) 
<type 'bytes'> 
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末托修,一起剝皮案震驚了整個濱河市睦刃,隨后出現(xiàn)的幾起案子际长,更是在濱河造成了極大的恐慌洋幻,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡凛膏,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門仔役,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人寒波,你說我怎么就攤上這事级野〕狡螅” “怎么了牢贸?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵誊抛,是天一觀的道長拗窃。 經(jīng)常有香客問我,道長泌辫,這世上最難降的妖魔是什么随夸? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮震放,結(jié)果婚禮上逃魄,老公的妹妹穿的比我還像新娘。我一直安慰自己澜搅,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布邪锌。 她就那樣靜靜地躺著勉躺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪觅丰。 梳的紋絲不亂的頭發(fā)上饵溅,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機(jī)與錄音妇萄,去河邊找鬼蜕企。 笑死,一個胖子當(dāng)著我的面吹牛冠句,可吹牛的內(nèi)容都是我干的轻掩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼懦底,長吁一口氣:“原來是場噩夢啊……” “哼唇牧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤丐重,失蹤者是張志新(化名)和其女友劉穎腔召,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扮惦,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡臀蛛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了崖蜜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浊仆。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖纳猪,靈堂內(nèi)的尸體忽然破棺而出氧卧,到底是詐尸還是另有隱情,我是刑警寧澤氏堤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布沙绝,位于F島的核電站,受9級特大地震影響鼠锈,放射性物質(zhì)發(fā)生泄漏闪檬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一购笆、第九天 我趴在偏房一處隱蔽的房頂上張望粗悯。 院中可真熱鬧,春花似錦同欠、人聲如沸样傍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽衫哥。三九已至,卻和暖如春襟锐,著一層夾襖步出監(jiān)牢的瞬間撤逢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工粮坞, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留蚊荣,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓莫杈,卻偏偏與公主長得像互例,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子筝闹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容