国产日韩欧美一区二区三区综合,日本黄色免费在线,国产精品麻豆欧美日韩ww,色综合狠狠操

極客小將

您現在的位置是:首頁 » python編程資訊

資訊內容

講解 python2與3的區別

極客小將2021-01-13-
簡介相關免費學習推薦:python視頻教程python2和python3的區別區別一、python3.0的一些變化1.print函數2.Unicode3.除法運算4.異常5.xrange6.八進制字面量表示7.不等運算符8.去掉了repr表達式9.多個模塊被改名(根據PEP8)10.數據類型
0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

相關免費學習推薦:python視頻教程0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

python2和python3的區別0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

區別一、python3.0的一些變化1.print函數2.Unicode3.除法運算4.異常5.xrange6.八進制字面量表示7.不等運算符8.去掉了repr表達式"9.多個模塊被改名(根據PEP8)10.數據類型總結

區別0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

??python的3.0版本,常被稱為python3000,簡稱py3k。相對于python的早期版本,這是一個較大的升級為了不帶入過多累贅,python3.0在設計的時候沒有考慮向下相容。
??許多針對早期python版本設計的程序都無法在python3.0上正常執行。為了照顧現有程序,python2.6作為一個過渡版本,基本使用了python2.x的語法和庫,同時考慮了向python3.0的遷移,允許使用部分python3.0的語法與函數。
??新的python程序建議使用python3.0版本的語法。除非執行環境無法安裝python3.0或者程序本身使用了不支持python3.0的第三方庫。目前不支持python的第三方庫有Twisted,py2exe,PIL等。
大多數第三方庫都正在努力的兼容python3.0版本。即使無法立即使用python3.0,也建議編寫相容的3.0版本python程序,然后使用2.6,2.7來執行。0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

一、python3.0的一些變化0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

1.print函數0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

??print語句沒有了,取而代之的是print()函數。python2.6與python2.7部分的支持這種形式的print語法。在python2.6與2.7里面以下三種形式是等價的0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

print "我是菜鳥"print (我是菜鳥) #注意print后邊有個空格print("我是菜鳥") #print()不能帶有其他任何參數

??然而python2.6實際上已經支持新的print()語法0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

from _future_import print_functionprint("我是個菜鳥","我好菜啊",sep=', ')

2.Unicode0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

??python2有ASCII str()類型,unicode()是單獨的,不是byte類型。現在python3有了Unicode(utf-8)字符串,以及一個字節類:byte和bytearrays。由于python3.x源碼文件默認使用utf-8編碼,這就使得以下代碼合法0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

我沒女友='I have no girlfriends'print(我沒女友)

3.除法運算0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

??python中的除法相較于其他語言會高端一些有些很復雜的規則,python中的除法有/與//兩個運算符。
首先說除法,python2.x和大多數語言一樣,比如java和c,整數相除結果是一個整數,把小數部分完全忽略掉,浮點數的除法會保留小數點的部分得到的一個浮點數結果。
??python3.x中除法就不再這樣做了,對于整數間的相除結果也會是浮點數。(這里可以用0/1來理解)
??而對于//除法,這種除法叫floor除法,會對除法的結果自動進行一個floor操作,在python2.x和3.x中是一致的。0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

#python2.x與3.x-1//2 #輸出值是-1

??注意的是并不是舍棄小數部分,而是執行floor操作,如果要截取小數部分,那么就需要使用math模塊的trunc函數。0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

4.異常0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

??在python3中處理異常也輕微改變了,在python3中,我們使用as作為關鍵詞。捕獲異常的語法由 except exc,var改為 except exc as var。
??使用語法except(exc1,exc2) as var可以同時捕獲多種類別的異常。python2.6已經支持這兩種語法。
·在2.x時代,所有類型的對象都是可以被直接拋出的,在3.x時代只有繼承BaseException的對象才可被拋出。
·2.x raise語句使用逗號將拋出對象類型和參數分開,3.x取消了這種奇葩寫法,直接調用構造函數拋出對象即可。
??在2.x時代,異常在代碼中除了表示程序錯誤,還經常做一些普通控制結構應該做的事,在3.x中可以看出,設計者讓異常變得更加專一,只有在錯誤發生的情況下才能用去用異常捕獲語句來處理。0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

5.xrange0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

??在python2中xrange()創建迭代對象的用法是非常流行的。比如:for循環或者是列表/集合/字典推導式。
??這個表現十分像生成器(比如:“惰性求值”)。但是這個xrange-iterable是無窮的,意味著你可以無限遍歷。
??由于它的惰性求值,如果你要遍歷它多次,xrange()函數比range()函數更快(比如for循環)。盡管如此,對比迭代一次,不建議你迭代多次,因此生成器每次都從頭開始。
??在python3中,range()是像xrange()那樣實現,以至于一個專門的xrange()函數都不再存在(在python3中xrange()會拋出命名異常。0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

6.八進制字面量表示0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

??八進制必須寫成0o777,原來的形式0777不能用了;二進制0b111。新增了一個bin()函數用于將一個整數轉換成二進制字串。python2.6已經支持這兩種語法0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

7.不等運算符0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

python2.x中不等于 !=和<>
python3.x中不等于只有!=0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

8.去掉了repr表達式"0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

python2.x中反引號"相當于repr函數的作用
python3.x中去掉了"這種寫法,只允許repr函數,感覺repr只有debug的時候才用,多數時候還是用str函數來用字符串描述對象。0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

9.多個模塊被改名(根據PEP8)0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

舊名字新名字_winregwinregConfigParserconfigparsercopy_regcopyregQueuequeueSocketServersocketserverreprreprlib

??StringIO模塊現在被合并到新的io模組內new,md5,gopherlib等模塊被刪除 。python2.6已經支援新的io模組。
??httplibBase,HTTPServer,CGIHTTPServer,SimpleHTTPServer,Cookie,cookerlib被合并到http包內。取消了exec語句只剩下exec()函數。python2.6已經支援exec()函數。0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

10.數據類型0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

??python3.x去除了long類型,現在只有一種整型——int
??新增了bytes類型,對應于2.x版本的八位串,定義一個butes字面量方法如下0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

b=b'lalala'type(b)#輸出<type 'bytes'>

str對象和bytes對象可以使用encode()(str->bytes)or.decode()(bytes->str)方法互相轉換。0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

s=b.decode()b1=s.encode()

dict的.keys()、.items和.values()方法返回迭代器,而之前的iterkeys()等函數都被遺棄。同事去掉的還有dict.has_key(),用in替代它吧>_<。0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

總結0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

??總之一句話,用python3吧,不要再倔強了!
??才開始學習計算機不久,第一次寫博客,如果有問題希望大家指正,希望我們能一起學習一起進步。共勉!

以上就是講解 python2與3的區別的詳細內容,更多請關注少兒編程網其它相關文章!0IX少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

預約試聽課

已有385人預約都是免費的,你也試試吧...

主站蜘蛛池模板: 兴城市| 思南县| 长顺县| 新建县| 行唐县| 望谟县| 宁海县| 万宁市| 洪雅县| 定南县| 山阴县| 宾川县| 牟定县| 同江市| 南涧| 陕西省| 隆回县| 泸西县| 大化| 新昌县| 平顶山市| 古田县| 许昌县| 林芝县| 乐平市| 灵丘县| 淳安县| 星子县| 唐海县| 三都| 惠州市| 漳浦县| 湾仔区| 三门峡市| 建德市| 阳朔县| 安塞县| 石屏县| 青海省| 廊坊市| 扎赉特旗|