最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

六星源課堂說(shuō)說(shuō)Python2和 Python3的區(qū)別,小白趕緊看過(guò)來(lái)!

2022-06-24 11:46 作者:六星源課堂  | 我要投稿

很多新同學(xué)在學(xué)習(xí)Python的過(guò)程當(dāng)中,都會(huì)猶豫是學(xué)Python2還是Python3呢,小編這里給大家整理了一下關(guān)于Python2和Python3都有哪些區(qū)別,一起看看吧,希望對(duì)迷茫的同學(xué)有所幫助~

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 編碼

3. 語(yǔ)法

1)去除了<>,全部改用!=

2)去除``,全部改用 repr()

3)關(guān)鍵詞加入 as 和 with,還有 True,F(xiàn)alse,None

4)整型除法返回浮點(diǎn)數(shù),要得到整型結(jié)果,請(qǐng)使用//

5)加入 nonlocal 語(yǔ)句。使用 noclocal x 可以直接指派外圍(非全局)變量

6)去除 print 語(yǔ)句,加入 print()函數(shù)實(shí)現(xiàn)相同的功能。同樣的還有 exec 語(yǔ)句,已經(jīng)改為exec()函數(shù)

7)改變了順序操作符的行為,例如 x<y,當(dāng) x 和 y 類型不匹配時(shí)拋出 TypeError 而不是返回隨即的 bool值

8)輸入函數(shù)改變了,刪除了 raw_input,用 input 代替:

2.X:guess = int(raw_input('Enter an integer : ')) # 讀取鍵盤輸入的方法

3.X:guess = int(input('Enter an integer : '))

9)去除元組參數(shù)解包。不能 def(a, (b, c)):pass 這樣定義函數(shù)了

10)新式的 8 進(jìn)制字變量,相應(yīng)地修改了 oct()函數(shù)。

11)增加了 2 進(jìn)制字面量和 bin()函數(shù)

12)擴(kuò)展的可迭代解包。在 Py3.X 里,a, b, *rest = seq 和 *rest, a = seq 都是合法的,只要求兩點(diǎn):rest 是 list,對(duì)象和 seq 是可迭代的。

13)新的 super(),可以不再給 super()傳參數(shù),

14)新的 metaclass 語(yǔ)法:

class Foo(*bases, **kwds):
pass

15)支持 class decorator。用法與函數(shù) decorator 一樣:

4. 字符串和字節(jié)串

1)現(xiàn)在字符串只有 str 一種類型,但它跟 2.x 版本的 unicode 幾乎一樣。

2)關(guān)于字節(jié)串,請(qǐng)參閱“數(shù)據(jù)類型”的第 2 條目

5.數(shù)據(jù)類型

1)Py3.X 去除了 long 類型,現(xiàn)在只有一種整型——int,但它的行為就像 2.X 版本的 long

2)新增了 bytes 類型,對(duì)應(yīng)于 2.X 版本的八位串,定義一個(gè) bytes 字面量的方法如下:

str 對(duì)象和 bytes 對(duì)象可以使用.encode() (str -> bytes) or .decode() (bytes ->str)方法相互轉(zhuǎn)化。

3)dict 的.keys()、.items 和.values()方法返回迭代器,而之前的 iterkeys()等函數(shù)都被廢棄。同時(shí)去掉的還有dict.has_key(),用 in 替代它吧

6.面向?qū)ο?/strong>

1)引入抽象基類(Abstraact Base Classes,ABCs)。

2)容器類和迭代器類被 ABCs 化。

3)迭代器的 next()方法改名為_(kāi)_next__(),并增加內(nèi)置函數(shù) next(),用以調(diào)用迭代器的__next__()方法

4)增加了@abstractmethod 和 @abstractproperty 兩個(gè) decorator,編寫抽象方法(屬性)更加方便。

7.異常

1)所以異常都從 BaseException 繼承,并刪除了 StardardError

2)去除了異常類的序列行為和.message 屬性

3)用 raise Exception(args)代替 raise Exception, args 語(yǔ)法

4)捕獲異常的語(yǔ)法改變,引入了 as 關(guān)鍵字來(lái)標(biāo)識(shí)異常實(shí)例

5)異常鏈,因?yàn)開(kāi)_context__在 3.0a1 版本中沒(méi)有實(shí)現(xiàn)

8.模塊變動(dòng)

1)移除了cPickle模塊,可以使用pickle模塊代替。最終我們將會(huì)有一個(gè)透明高效的模塊。

2)移除了 imageop 模塊

3)移除了 audiodev, Bastion, bsddb185, exceptions, linuxaudiodev, md5, MimeWriter,mimify, popen2,rexec, sets, sha, stringold, strop, sunaudiodev, timing 和 xmllib 模塊

4)移除了 bsddb 模塊(單獨(dú)發(fā)布,可以從?jcea.es/programacion/py獲取)

5)移除了 new 模塊

6)os.tmpnam()和 os.tmpfile()函數(shù)被移動(dòng)到 tmpfile 模塊下

7)tokenize 模塊現(xiàn)在使用 bytes 工作。主要的入口點(diǎn)不再是 generate_tokens,而是tokenize.tokenize()

9.其它

1)xrange() 改名為 range(),要想使用 range()獲得一個(gè) list,必須顯式調(diào)用:

>>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2)bytes 對(duì)象不能 hash,也不支持 b.lower()、b.strip()和 b.split()方法,但對(duì)于后兩者可以使用 b.strip(b’ \n\t\r \f’)和 b.split(b’ ‘)來(lái)達(dá)到相同目的

3)zip()、map()和 filter()都返回迭代器。而 apply()、 callable()、coerce()、execfile()、reduce()和 reload ()函數(shù)都被去除了現(xiàn)在可以使用 hasattr()來(lái)替換callable(). hasattr()的語(yǔ)法如:hasattr(string, '__name__')

4) string.letters 和 相 關(guān) 的 .lowercase 和 .uppercase 被去除 , 請(qǐng)改用string.ascii_letters 等

5)如果 x < y 的不能比較,拋出 TypeError 異常。2.x 版本是返回偽隨機(jī)布爾值的

6)__getslice__系列成員被廢棄。a[i:j]根據(jù)上下文轉(zhuǎn)換為 a.__getitem__(slice(I, j))或 __setitem__和 __delitem__調(diào)用

7)file 類被廢棄

以上就是本次分享的全部?jī)?nèi)容,想學(xué)習(xí)更多Python技巧,歡迎持續(xù)關(guān)注六星源課堂!


六星源課堂說(shuō)說(shuō)Python2和 Python3的區(qū)別,小白趕緊看過(guò)來(lái)!的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
淮南市| 白城市| 阳原县| 维西| 温宿县| 津市市| 长丰县| 中牟县| 连山| 阿瓦提县| 孝义市| 镇赉县| 丘北县| 甘肃省| 昌平区| 海兴县| 合山市| 西盟| 新龙县| 泸溪县| 杭锦后旗| 永嘉县| 姜堰市| 万州区| 博兴县| 福州市| 蒙山县| 虎林市| 龙井市| 吴江市| 交口县| 宾川县| 南宫市| 洛浦县| 若尔盖县| 衡水市| 柘城县| 旬邑县| 双峰县| 太康县| 富宁县|