2017-09-29 66 views
-1

我試圖創建一個字節字符串,但它似乎只是一個普通的字符串。我在這裏做錯了什麼?在python中創建一個字節字符串

example

byteStr = b'some string' 
byteStr #'some string' 
utfStr = 'some string'.encode('utf-8') 
utfStr #'some string' 
byteStr == utfStr #True 
+0

你的字節串正確地創建;僅僅因爲它等於一個字符串並不意味着這是錯誤的。我不會回答,因爲我不知道字節串是如何工作的,但比較字節串和字符串將(通常)給出'True'。 – HyperNeutrino

+0

@HyperNeutrino更新,我期待打印的byteStr在第一次報價之前顯示b,並且等效性測試失敗 –

+0

@HyperNeutrino我也看到了,當我運行type(byteStr)時,我返回。那是對的嗎? –

回答

1

如果你想創建在Python 2字節數組,它被稱爲bytearrayPython 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'> 
+0

啊,我明白了。我正在使用的教程是使用python3來解釋不同之處。謝謝! –

+0

作爲一個快速跟進問題,爲什麼會在我的示例中鍵入(uftStr)返回而不是?看起來好像.encode('utf-8')函數不起作用 –

相關問題