在python3以後,字串和bytes型別徹底分開了。字串是以字元為單位進行處理的,bytes型別是以位元組為單位處理的。
bytes資料型別在所有的操作和使用甚至內建方法上和字串資料型別基本一樣,也是不可變的序列物件。
python3中,bytes通常用於網路資料傳輸、二進位制和檔案的儲存等等。
可以通過呼叫bytes()生成bytes例項,其值形式為b』***x』,對於同乙個字串,如果採用不同的編碼方式生成bytes物件,就會形成不同的值。
bt_1 = b'hello' # 建立位元組 b'***x'
print
(type
(bt_1)
) # >
bt_2 =
bytes
('hello'
, encoding=
'utf8'
) # 建立位元組:bytes
(string, encoding[
, errors]
)-> bytes gbk:中國碼 utf8:萬國碼
print
(bt_2) # b'hello'
print
(type
(bt_2)
) # >
在實際應用中,我們通常會將bytes型別與str型別做轉換。
bt_1 = b'hello'
print
(type
(bt_1)
) # >
'''將bt_1轉換為str型別
'''s_1 = bt_1.
decode
() # decode
()解碼
print
(s_1) # hello
print
(type
(s_1)
) # >
'''將字串轉換為位元組
'''s_2 =
'world'
s_3 = s_2.
encode
() # encode
()編碼
print
(s_3) # b'world'
print
(type
(s_3)
)>
Python位元組碼介紹
如果你曾經編寫過 python,或者只是使用過 python,你或許經常會看到 python 源 檔案 它們的名字以 py 結尾。你可能還看到過其它型別的檔案,比如以 pyc 結尾的檔案,或許你可能聽說過它們就是 python 的 位元組碼bytecode 檔案。在 python 3 上這些可能不容...
Python 中 NumPy 的位元組交換
大端模式 big endian 高位位元組放在記憶體的低位址端,低位位元組排放在記憶體的高位址端,即正序排列,高尾端 符號位的判定固定為第乙個位元組,容易判斷正負。小端模式 little endian 低位位元組放在記憶體的低位址端,高位位元組排放在記憶體的高位址端,即逆序排列,低尾端 強制轉換資料...
有關位元組對齊的介紹
什麼是對齊,以及為什麼要對齊 現代計算機中記憶體空間都是按照byte劃分的,從理論上講似乎對任何型別的變數的訪問可以從任何位址開始,但實際情況是在訪問特定變數的時候經常在特定的記憶體位址訪問,這就需要各型別資料按照一定的規則在空間上排列,而不是順序的乙個接乙個的排放,這就是對齊。對齊的作用和原因 各...