>> >>> isinstance(b abc , bytes) True >>> >>> isinstance(b abc , str) True >>> >>> isinstance( abc , str) True >>> >>> isinstance( abc ..."/>
溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

代碼總結(jié)Python2 和 Python3 字符串的區(qū)別

發(fā)布時(shí)間:2020-10-22 00:23:48 來(lái)源:腳本之家 閱讀:187 作者:moon__light 欄目:開(kāi)發(fā)技術(shù)

Python2

>>> 
>>> isinstance(b'abc', bytes)
True
>>> 
>>> isinstance(b'abc', str)
True
>>> 
>>> isinstance('abc', str)
True
>>> 
>>> isinstance('abc', bytes)
True
>>> 
>>> 
>>> 
>>> 'abc'.startswith('ab')
True
>>> 
>>> b'abc'.startswith('ab'.encode())
True
>>> 
>>> b'abc'.startswith('ab')
True
>>> 
>>> 'abc'.startswith('ab'.encode())
True
>>>

Python3

>>> 
>>> isinstance(b'abc', bytes)
True
>>> 
>>> isinstance(b'abc', str)
False
>>> 
>>> isinstance('abc', str)
True
>>> 
>>> isinstance('abc', bytes)
False
>>> 
>>> 
>>> 
>>> 'abc'.startswith('ab')
True
>>> 
>>> b'abc'.startswith('ab'.encode())
True
>>> 
>>> b'abc'.startswith('ab')
Traceback (most recent call last):
 File "<pyshell#25>", line 1, in <module>
  b'abc'.startswith('ab')
TypeError: startswith first arg must be bytes or a tuple of bytes, not str
>>> 
>>> 'abc'.startswith('ab'.encode())
Traceback (most recent call last):
 File "<pyshell#27>", line 1, in <module>
  'abc'.startswith('ab'.encode())
TypeError: startswith first arg must be str or a tuple of str, not bytes
>>>

擴(kuò)展學(xué)習(xí)

python2中有一種類(lèi)型叫做unicode型,例

type(u"a") => str型
type("a".decode('utf8')) => unicode型

兩者返回的類(lèi)型都是unicode型

而在python3中,所有的字符串都是unicode,所以就不存在單獨(dú)的unicode型,全部都是字符串型

type(u"a") => str型
type("a".decode('utf8')) => 報(bào)錯(cuò),python3不能這樣寫(xiě)

但是python3中多處一種字符串

type(b'132') => byte型

以上就是相關(guān)的知識(shí)點(diǎn)內(nèi)容,如果大家有任何補(bǔ)充可以聯(lián)系億速云小編。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI