20201230 3 bytes資料型別

2022-06-05 14:54:11 字數 2518 閱讀 3365

一、bytes型別

python 3最重要的新特性大概要算是對文字和二進位制資料作了更為清晰的區分。

文字總是unicode,由str型別表示,二i制資料則由bytes型別表示。

python 3不會以任意隱式的方式混用str和bytes,正是這使得兩者的區分特別清晰。

你不能拼接字串和位元組包,也無法在位元組包裡搜尋字串(反之亦然) ,

也不能將字串傳入引數為位元組包的函式(反之亦然) 。這是件好事。

位元組:可以理解為 2進製 資料型別

在 python 中有乙個 位元組資料型別,叫 bytes型別,這個和字串是兩回事

二進位制都統一叫 bytes

同一句話之間,字元編碼,不同的編碼之間可以轉換

string → encode編碼 → bytes → decode解碼 → string

二進位制 decode 轉換成字串

什麼場景下,字串 必須轉換成 二進位制?

python3 中的資料傳輸 都是 二進位制的形式

>>>'

€20'.encode('

utf-8')

b'\xe2\x82\xac20

'>>> b'

\xe2\x82\xac20

'.decode('

utf-8

')'€20

'encode 的時候,一定要寫上,之前的樣子,因為它自己不知道,比如之前是 utf-8b 開頭的 就是 二進位制的 byte 型別

decode 就轉換回來了

msg = "

我愛北京天安門

"print

(msg)

#print(msg.encode())

如果沒有指定編碼,就轉成預設的編碼格式;這地方沒出錯,是因為 windows 的預設編碼 就是 utf-8這段** 如果放在 linux 上,可能就報錯了

print(msg.encode(encoding="

utf-8"))

print(msg.encode(encoding="

utf-8

").decode(encoding="

utf-8"))

這就是把乙個字串 轉換成 位元 byte 型別,然後在轉換回來

二、三元運算

result = 值1 if 條件 else

值2:如果條件為真:result =值1

如果條件為假:result =值2

三、進製

• 二進位制,0 1• 八進位制,01234567• 十進位制,0123456789• 十六進製制,0123456789abcdef 二進位製到 16 進製轉換http:/jingyan.baidu.com/album/47a29124292608c0142399b.html?picindex=1a,b,c = 1,3,5d = a if a >b else

c如果 a >b 結果就是 a; 如果 a 不大於 b 結果就是 c

>>> d = a if aelse

c>>>d

1>>>這就叫三元對映

如果不用三元對映,只能這樣寫;就會變得比較麻煩

>>> if a >b: d =a

...

else:d=c

二進位制與十六進製制數之間的對應關係表

16進製制與二進位制對應關係

0 1 2 3 4

0000 0001 0010 0011 0100

5 6 7 8 9

0101 0110 0111 1000 1001a b c d e f

1010 1011 1100 1101 1110 1111二進位制轉換成十六進製制的方法是,取四合一法,即從二進位制的小數點為分界點,向左(或向右)每四位取成一位。

1011 1001 1011. 1001每四位表示乙個 16位

組分好後,對照二進位制與十六進製制數的對應表,將四位二進位制按權相加,得到的數就是一位十六進製制數,

然後按順序排列,小數點的位置不變哦,最後得到的就是十六進製制數哦。

1011 1001 1011. 1001b 9 b 9注意 16 進製的表示法,用字母 h 字尾表示,比如 bh 就表示 16 進製數 11;

也可以用 0x 字首表示,比如 0x23 就是 16 進製的 23bh h 字尾

0x530x 字首

在向左(或向右)取四位時,取到最高位(最低位)如果無法湊足四位,就可以在小數點的最左邊(或最右邊)補0,進行換算

10111.011

1 0111 .011↓ ↓ ↓

0001 0111 0110↓ ↓ ↓

1 7 6

Python 標準資料型別 Bytes

bytes 物件是由單個位元組作為基本元素 8位,取值範圍 0 255 組成的序列,為不可變物件。bytes 物件只負責以二進位制位元組序列的形式記錄所需記錄的物件,至於該物件到底表示什麼 比如到底是什麼字元 則由相應的編碼格式解碼所決定。我們可以通過呼叫 bytes 類 沒錯,它是類,不是函式 生...

Python 標準資料型別 Bytes

bytes 物件是由單個位元組作為基本元素 8位,取值範圍 0 255 組成的序列,為不可變物件。bytes 物件只負責以二進位制位元組序列的形式記錄所需記錄的物件,至於該物件到底表示什麼 比如到底是什麼字元 則由相應的編碼格式解碼所決定。我們可以通過呼叫 bytes 類 沒錯,它是類,不是函式 生...

Python 標準資料型別 Bytes

bytes 物件是由單個位元組作為基本元素 8位,取值範圍 0 255 組成的序列,為不可變物件。bytes 物件只負責以二進位制位元組序列的形式記錄所需記錄的物件,至於該物件到底表示什麼 比如到底是什麼字元 則由相應的編碼格式解碼所決定。我們可以通過呼叫 bytes 類 沒錯,它是類,不是函式 生...