麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

淺析Python 3 字符串中的 STR 和 Bytes 有什么區別

2020-02-15 23:12:09
字體:
來源:轉載
供稿:網友

Python2的字符串有兩種:str和Unicode,Python3的字符串也有兩種:str和Bytes。Python2的str相當于Python3的Bytes,而Unicode相當于Python3的Bytes。

Python2里面的str和Unicode是可以混用的,在都是英文字母的時候str和unicode沒有區別。

而Python3嚴格區分文本(str)和二進制數據(Bytes),文本總是Unicode,用str類型,二進制數據則用Bytes類型表示,這樣嚴格的限制也讓我們對如何使用它們有了清晰的認識,這是很棒的。

Python2 和 Python3 的區別

通過以下代碼我們認識以下Python2和Python3的字符串混用情況:

# Python2中:In [1]: 'a' == u'a'Out[1]: TrueIn [2]: 'a' in u'a'Out[2]: TrueIn [3]: '編程' == u'編程'/usr/local/bin/ipython:1: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal#!/usr/bin/pythonOut[3]: FalseIn [4]: '編程' in u'編程'---------------------------------------------------------------------------UnicodeDecodeError Traceback (most recent call last)<ipython-input-4-7b677a923254> in <module>()----> 1 '編程' in u'編程'UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 0: ordinal not in range(128)# Python3中:In [1]: 'a' == b'a'Out[1]: FalseIn [2]: 'a' in b'a'---------------------------------------------------------------------------TypeError Traceback (most recent call last)<ipython-input-10-ca907fd8856f> in <module>()----> 1 'a' in b'a'TypeError: a bytes-like object is required, not 'str'

以上代碼可以看到,Python2中str和Unicode在都是ASCII碼時混用沒區別,因為Unicode的ASCII區域的值跟str的ASCII是一樣的;而對應非ASCII區域(比如中文),二者又不一樣了。

可以看到Python2拋出了Unicode Decode Error的異常,相信這也是很多人處理文本時遇到過的錯誤;‘編程'在str類型時長度是6,而在Unicode時是2。不同字符的不同表現,讓Python2的str和Unicode顯得撲朔迷離。

在Python3中,嚴格區分了str和Bytes,不同類型之間操作就會拋出Type Error的異常。

上面用示例闡述了Python2和Python3中字符串的不同,下面主要講Python3中的字符串。

str和bytes之間的轉換

一圖勝千言:

str和bytes的相互轉換

str.encode(‘encoding') -> bytesbytes.decode(‘encoding') -> str

Encoding指的是具體的編碼規則的名稱,對于中文來說,它可以是這些值: ‘utf-8', ‘gb2312', ‘gbk', ‘big5' 等等。

不知道你有沒有注意到上圖中str矩形要比Bytes矩形短,表示同樣的內容,str的長度要小于或等于Bytes的長度,你可以考慮一下原因(參考Unicode、UTF-8的編碼規則)。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美精品成人一区二区三区四区 | 永久久久| 久久久久性 | 亚洲欧美在线视频免费 | 天海翼无删减av三级在线观看 | 国产亚洲精品综合一区91555 | 日本不卡一区二区三区在线观看 | 羞羞视频免费视频欧美 | 中国大陆高清aⅴ毛片 | 日韩一级片黄色 | 午夜视频色 | 国产精品9191 | 国产精品久久久久久久久久久久午夜 | 国产精品刺激对白麻豆99 | 午夜视频在线观 | 久久精品一级 | 亚洲日韩中文字幕一区 | 视频一区二区在线播放 | 一本一本久久a久久精品综合小说 | 成人区一区二区三区 | 欧美一级全黄 | 噜噜噜影院 | 在线看免电影网站 | 国产精品成年片在线观看, 激情小说另类 | 欧美日韩在线视频一区 | 中文在线免费观看 | 国产小视频在线观看 | 欧美日韩一区,二区,三区,久久精品 | 成人福利视频网站 | 欧美一区二区精品夜夜嗨 | 日本xxxx视频 | 日本中文字幕高清 | 亚洲精品3 | 看免费一级毛片 | 国产午夜精品久久久久婷 | av电影在线网站 | 黄色片视频在线观看 | 国产精品性夜天天视频 | 性少妇videosexfreexx入片 | 91福利免费观看 | 国产成人高清在线 |