一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語(yǔ)言編程技術(shù)及教程分享平臺(tái)!
分類(lèi)導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Python 2與Python 3版本和編碼的對(duì)比

Python 2與Python 3版本和編碼的對(duì)比

2020-09-21 13:21Huoty Python

這篇文章主要介紹了Python 2與Python 3版本和編碼的對(duì)比,文中介紹的很詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。

一、版本對(duì)比

首先要說(shuō)的是,Python的版本,目前主要分為兩大類(lèi):

Python 2.x的版本的,被稱(chēng)為Python2:是目前用的最廣泛的,比如Python 2.7.3。

Python 3.x的版本的,被稱(chēng)為Python3:是最新的版本的,比如Python 3.1。長(zhǎng)遠(yuǎn)來(lái)看,也算是以后的趨勢(shì)。

【Python2和Python3之間的區(qū)別】

1.從Python2到Python3,很多基本的函數(shù)接口變了,甚至是,有些庫(kù)或函數(shù)被去掉了,改名了

     Python2和Python3,在很多基本的,最常用的函數(shù)方面,接口都變了,最典型的就要數(shù)大家最常用的print函數(shù)了。

2.第三方庫(kù)的支持方面,目前來(lái)說(shuō),還是Python2支持的最好,Python3支持的不太夠

     Python強(qiáng)大的原因之一是第三方的庫(kù)很多,功能很強(qiáng)大。

     而目前很多Python的第三方的庫(kù),很多只提供Python2的。

     或者是即使提供了Python3的,但是也不一定很成熟。

二、編碼對(duì)比

在 Python 中,不論是 Python2 還是 Python3 中,總體上說(shuō),字符都只有兩大類(lèi):

  1. 通用的 Unicode 字符;
  2. (unicode 被編碼后的)某種編碼類(lèi)型的字符,比如 UTF-8,GBK 等類(lèi)型的字符。

Python2 中字符的類(lèi)型:

  • str: 已經(jīng)編碼后的字節(jié)序列
  • unicode: 編碼前的文本字符

Python3 中字符的類(lèi)型:

  • str: 編碼過(guò)的 unicode 文本字符
  • bytes: 編碼前的字節(jié)序列

我們可以認(rèn)為字符串有兩種狀態(tài),即文本狀態(tài)和字節(jié)(二進(jìn)制)狀態(tài)。Python2 和 Python3 中的兩種字符類(lèi)型都分別對(duì)應(yīng)這兩種狀態(tài),然后相互之間進(jìn)行編解碼轉(zhuǎn)化。編碼就是將字符串轉(zhuǎn)換成字節(jié)碼,涉及到字符串的內(nèi)部表示;解碼就是將字節(jié)碼轉(zhuǎn)換為字符串,將比特位顯示成字符。

在 Python2 中,str 和 unicode 都有 encode 和 decode 方法。但是不建議對(duì) str 使用 encode,對(duì) unicode 使用 decode, 這是 Python2 設(shè)計(jì)上的缺陷。Python3 則進(jìn)行了優(yōu)化,str 只有一個(gè) encode 方法將字符串轉(zhuǎn)化為一個(gè)字節(jié)碼,而且 bytes 也只有一個(gè) decode 方法將字節(jié)碼轉(zhuǎn)化為一個(gè)文本字符串。

Python2 的 str 和 unicode 都是 basestring 的子類(lèi),所以?xún)烧呖梢灾苯舆M(jìn)行拼接操作。而 Python3 中的 bytes 和 str 是兩個(gè)獨(dú)立的類(lèi)型,兩者不能進(jìn)行拼接。

Python2 中,普通的,用引號(hào)括起來(lái)的字符,就是 str;此時(shí)字符串的編碼類(lèi)型,對(duì)應(yīng)著你的 Python 文件本身保存為何種編碼有關(guān),最常見(jiàn)的 Windows 平臺(tái)中,默認(rèn)用的是 GBK。Python3 中,被單引號(hào)或雙引號(hào)括起來(lái)的字符串,就已經(jīng)是 Unicode 類(lèi)型的 str 了。

對(duì)于 str 為何種編碼,有一些前提:

  1. Python 文件開(kāi)始已經(jīng)聲明對(duì)應(yīng)的編碼
  2. Python 文件本身的確是使用該編碼保存的
  3. 兩者的編碼類(lèi)型要一樣(比如都是 UTF-8 或者都是 GBK 等)

這樣 Python 解析器才能正確的把文本解析為對(duì)應(yīng)編碼的 str。

總體來(lái)說(shuō),在 Python3 中,字符編碼問(wèn)題得到了極大的優(yōu)化,不再像 Python2 那么頭疼。在 Python3 中,文本總是 Unicode, 由 str 類(lèi)型進(jìn)行表示,二進(jìn)制數(shù)據(jù)使用 bytes 進(jìn)行表示,不會(huì)將 str 與 bytes 偷偷的混在一起,使得兩者的區(qū)別更加明顯。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家學(xué)習(xí)或使用python能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)服務(wù)器之家的支持。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产欧美日韩视频在线观看一区二区 | 四虎影视在线影院在线观看观看 | v视界影院_vsjla| 福利一区三区 | 2022超帅男同gayxxx | 动漫美女被羞羞产奶 | 成年美女黄网站色视频大全免费 | 果冻传媒天美传媒乌鸦传媒 | 国产精品视频2021 | 姐姐不~不可以动漫在线观看 | 国产欧美日韩成人 | 91嫩草私人成人亚洲影院 | 无人区在线观看免费观看 | 久久综合视频网站 | www在线视频在线播放 | 91系列在线观看免费 | 亚洲卡一卡2卡三卡4麻豆 | 99热国产在线观看 | 视频在线视频免费观看 | 国产精品 视频一区 二区三区 | 国产成人综合网亚洲欧美在线 | 亚洲福利二区 | 午夜理伦片免费 | 72张让男人一看就硬的图片 | 涩涩屋在线观看 | 亚洲福利二区 | 2022最新国产在线 | 国产成人精品一区二区阿娇陈冠希 | 亚洲欧美日韩成人一区在线 | 成人福利在线观看 | 探花国产 | 蜜桃88av| 大学生宿舍飞机 free | 美国雪白人妖sarina | 无码观看AAAAAAAA片 | 国产精品永久免费自在线观看 | 免费大秀视频在线播放 | 狠狠澡 | 美女日b视频 | 草逼视频免费看 | 亚洲免费网站在线观看 |