我試圖創建一個字節字符串,但它似乎只是一個普通的字符串。我在這裏做錯了什麼?在python中創建一個字節字符串
byteStr = b'some string'
byteStr #'some string'
utfStr = 'some string'.encode('utf-8')
utfStr #'some string'
byteStr == utfStr #True
我試圖創建一個字節字符串,但它似乎只是一個普通的字符串。我在這裏做錯了什麼?在python中創建一個字節字符串
byteStr = b'some string'
byteStr #'some string'
utfStr = 'some string'.encode('utf-8')
utfStr #'some string'
byteStr == utfStr #True
如果你想創建在Python 2字節數組,它被稱爲bytearray
。 Python 2 does not have a byte string
.。 The b
in front of the str is ignored in Python 2,這意味着'hello' == b'hello'
試試這個:
>>> f = b'f'
>>> type(f)
<type 'str'>
現在,要記住,u'f' == 'f'
是很重要的:
>>> h = u'f'
>>> f == h
True
>>> type(h)
>>> <type 'unicode'>
啊,我明白了。我正在使用的教程是使用python3來解釋不同之處。謝謝! –
作爲一個快速跟進問題,爲什麼會在我的示例中鍵入(uftStr)返回
你的字節串正確地創建;僅僅因爲它等於一個字符串並不意味着這是錯誤的。我不會回答,因爲我不知道字節串是如何工作的,但比較字節串和字符串將(通常)給出'True'。 – HyperNeutrino
@HyperNeutrino更新,我期待打印的byteStr在第一次報價之前顯示b,並且等效性測試失敗 –
@HyperNeutrino我也看到了,當我運行type(byteStr)時,我返回。那是對的嗎? –