[英]How to convert string to byte in Python, and add the values in the byte?
我正在使用 Python 2.7。
我得到了這個函數的文檔字符串:
def test(a, b):
''' takes two bytes, returns the the bytes when the two bytes are added up
(bytes, bytes) -> bytes
j = 0
k = j + b[0]
我嘗試這樣做(有人告訴我這將是該函數的有效輸入並遵循文檔字符串):
test(b"2402", b"testing"):
但這引發了一個錯誤說
TypeError: unsupported operand type(s) for +: 'int' and 'str'
根據我的理解,字節由 1 和 0(即整數)組成。 那么我不應該能夠添加字節的每個索引嗎?
示例: test(b"123", b"testing")
a 和 b 將是字節(由 1 和 0 組成)。 我應該能夠將數字相加,讓它等於 x,然后返回 b"x"。
編輯:函數本身不需要解決,我只是用一個例子來說明我想要的。 我只想知道如何在 Python 2.7 中將字符串轉換為字節。
當您使用 python 2 時,請使用
bytearray("2402")
或者
"2402".encode('utf-8')
如果你決定切換到 python 3.x,試試這個:
test(bytes("2402", 'utf-8'), bytes("testing", 'utf-8'))
要將字符串轉換為字節或將字節轉換為字符串,您還應該提供編碼,如果您有字節,則無法使用 str 獲得正確的結果,但您應該使用如下編碼:
b"abcde".decode("utf-8")
您應該考慮另一件事,即對字節進行索引不會返回一個字節,而是返回整數,試試這個:
>>>type(b[0])
<class 'int'>
因為 bytes 和 bytearray 對象是整數序列(0 到 255 之間)
該函數在 python3 中有效,因為在 py3 中,對於字節對象b
, b[0]
將是一個整數:
>>> type(b'abc'[0])
<class 'int'>
但是當您使用 python2 時, b[0]
將是一個 str:
>>> type(b'abc'[0])
<type 'str'>
不允許將 str 和 int 添加在一起。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.