Python3 中bytes數據類型深入理解(ASCII碼對照表)


bytes的來源

bytes 是 Python 3.x 新增的類型,在 Python 2.x 中是不存在的。

bytes 的意思是“字節”,以字節為單位存儲數據。而一個字節二進制為8個比特位。

字節串(bytes)和字符串(string)的對比:

摘自:http://c.biancheng.net/view/2175.html

  • 字符串由若干個字符組成,以字符為單位進行操作;字節串由若干個字節組成,以字節為單位進行操作。
  • 字節串和字符串除了操作的數據單元不同之外,它們支持的所有方法都基本相同。
  • 字節串和字符串都是不可變序列,不能隨意增加和刪除數據。


bytes 只負責以字節序列的形式(二進制形式)來存儲數據,至於這些數據到底表示什么內容(字符串、數字、圖片、音頻等),完全由程序的解析方式決定。如果采用合適的字符編碼方式(字符集),字節串可以恢復成字符串;反之亦然,字符串也可以轉換成字節串。

說白了,bytes 只是簡單地記錄內存中的原始數據,至於如何使用這些數據,bytes 並不在意,你想怎么使用就怎么使用,bytes 並不約束你的行為。

bytes 類型的數據非常適合在互聯網上傳輸,可以用於網絡通信編程;bytes 也可以用來存儲圖片、音頻、視頻等二進制格式的文件。

字符串和 bytes 存在着千絲萬縷的聯系,我們可以通過字符串來創建 bytes 對象,或者說將字符串轉換成 bytes 對象。有以下三種方法可以達到這個目的:

  • 如果字符串的內容都是 ASCII 字符,那么直接在字符串前面添加b前綴就可以轉換成 bytes。
  • bytes 是一個類,調用它的構造方法,也就是 bytes(),可以將字符串按照指定的字符集轉換成 bytes;如果不指定字符集,那么默認采用 UTF-8。

字符串本身有一個 encode() 方法,該方法專門用來將字符串按照指定的字符集轉換成對應的字節串;如果不指定字符集,那么默認采用 UTF-8。

bytes的在Python 中的表示方法

bytes的在Python 中的表示法默認為展示對應的ASCII 字符,但ASCII碼表256個只有95個可以打印的字符

如果一個bytes類型的數據(一串bytes 暫且叫做“字節串”)一些字節沒有對應的可打印字符時,則用十六進制表示法展示。

 

#通過b前綴將字符串轉換成 bytes
b3 = b'http://c.biancheng.net/python/'
print("b3: ", b3)

b4 = bytes('C語言中文網8歲了', encoding='UTF-8') print("b4: ", b4)

輸出

b3:  b'http://c.biancheng.net/python/'
b4:  b'C\xe8\xaf\xad\xe8\xa8\x80\xe4\xb8\xad\xe6\x96\x87\xe7\xbd\x918\xe5\xb2\x81\xe4\xba\x86'

附錄:ASCII碼對照表

附一:基礎ASCII碼 128個,其中可打印字符95個

http://ascii.911cha.com/

ASCII控制字符

二進制 十進制 十六進制 縮寫 可以顯示的表示法 名稱/意義
0000 0000 0 00 NUL 空字符(Null)
0000 0001 1 01 SOH 標題開始
0000 0010 2 02 STX 本文開始
0000 0011 3 03 ETX 本文結束
0000 0100 4 04 EOT 傳輸結束
0000 0101 5 05 ENQ 請求
0000 0110 6 06 ACK 確認回應
0000 0111 7 07 BEL 響鈴
0000 1000 8 08 BS 退格
0000 1001 9 09 HT 水平定位符號
0000 1010 10 0A LF 換行鍵
0000 1011 11 0B VT 垂直定位符號
0000 1100 12 0C FF 換頁鍵
0000 1101 13 0D CR 歸位鍵
0000 1110 14 0E SO 取消變換(Shift out)
0000 1111 15 0F SI 啟用變換(Shift in)
0001 0000 16 10 DLE 跳出數據通訊
0001 0001 17 11 DC1 設備控制一(XON 啟用軟件速度控制)
0001 0010 18 12 DC2 設備控制二
0001 0011 19 13 DC3 設備控制三(XOFF 停用軟件速度控制)
0001 0100 20 14 DC4 設備控制四
0001 0101 21 15 NAK 確認失敗回應
0001 0110 22 16 SYN 同步用暫停
0001 0111 23 17 ETB 區塊傳輸結束
0001 1000 24 18 CAN 取消
0001 1001 25 19 EM 連接介質中斷
0001 1010 26 1A SUB 替換
0001 1011 27 1B ESC 跳出
0001 1100 28 1C FS 文件分割符
0001 1101 29 1D GS 組群分隔符
0001 1110 30 1E RS 記錄分隔符
0001 1111 31 1F US 單元分隔符
0111 1111 127 7F DEL 刪除

ASCII可顯示字符

二進制 十進制 十六進制 圖形
0010 0000 32 20 (空格)(␠)
0010 0001 33 21 !
0010 0010 34 22 "
0010 0011 35 23 #
0010 0100 36 24 $
0010 0101 37 25  %
0010 0110 38 26 &
0010 0111 39 27 '
0010 1000 40 28 (
0010 1001 41 29 )
0010 1010 42 2A *
0010 1011 43 2B +
0010 1100 44 2C ,
0010 1101 45 2D -
0010 1110 46 2E .
0010 1111 47 2F /
0011 0000 48 30 0
0011 0001 49 31 1
0011 0010 50 32 2
0011 0011 51 33 3
0011 0100 52 34 4
0011 0101 53 35 5
0011 0110 54 36 6
0011 0111 55 37 7
0011 1000 56 38 8
0011 1001 57 39 9
0011 1010 58 3A :
0011 1011 59 3B ;
0011 1100 60 3C <
0011 1101 61 3D =
0011 1110 62 3E >
0011 1111 63 3F ?
 
二進制 十進制 十六進制 圖形
0100 0000 64 40 @
0100 0001 65 41 A
0100 0010 66 42 B
0100 0011 67 43 C
0100 0100 68 44 D
0100 0101 69 45 E
0100 0110 70 46 F
0100 0111 71 47 G
0100 1000 72 48 H
0100 1001 73 49 I
0100 1010 74 4A J
0100 1011 75 4B K
0100 1100 76 4C L
0100 1101 77 4D M
0100 1110 78 4E N
0100 1111 79 4F O
0101 0000 80 50 P
0101 0001 81 51 Q
0101 0010 82 52 R
0101 0011 83 53 S
0101 0100 84 54 T
0101 0101 85 55 U
0101 0110 86 56 V
0101 0111 87 57 W
0101 1000 88 58 X
0101 1001 89 59 Y
0101 1010 90 5A Z
0101 1011 91 5B [
0101 1100 92 5C \
0101 1101 93 5D ]
0101 1110 94 5E ^
0101 1111 95 5F _
 
二進制 十進制 十六進制 圖形
0110 0000 96 60 `
0110 0001 97 61 a
0110 0010 98 62 b
0110 0011 99 63 c
0110 0100 100 64 d
0110 0101 101 65 e
0110 0110 102 66 f
0110 0111 103 67 g
0110 1000 104 68 h
0110 1001 105 69 i
0110 1010 106 6A j
0110 1011 107 6B k
0110 1100 108 6C l
0110 1101 109 6D m
0110 1110 110 6E n
0110 1111 111 6F o
0111 0000 112 70 p
0111 0001 113 71 q
0111 0010 114 72 r
0111 0011 115 73 s
0111 0100 116 74 t
0111 0101 117 75 u
0111 0110 118 76 v
0111 0111 119 77 w
0111 1000 120 78 x
0111 1001 121 79 y
0111 1010 122 7A z
0111 1011 123 7B {
0111 1100 124 7C |
0111 1101 125 7D }
0111 1110 126 7E ~

附二:擴展ASCII碼,默認都不可打印

    https://tool.ip138.com/ascii_code/

DEC OCT HEX BIN 縮寫/符號 HTML實體 描述
128 200 80 10000000 &#128; Euro sign
129 201 81 10000001      
130 202 82 10000010 &#130; Single low-9 quotation mark
131 203 83 10000011 ƒ &#131; Latin small letter f with hook
132 204 84 10000100 &#132; Double low-9 quotation mark
133 205 85 10000101 &#133; Horizontal ellipsis
134 206 86 10000110 &#134; Dagger
135 207 87 10000111 &#135; Double dagger
136 210 88 10001000 ˆ &#136; Modifier letter circumflex accent
137 211 89 10001001 &#137; Per mille sign
138 212 8A 10001010 Š &#138; Latin capital letter S with caron
139 213 8B 10001011 &#139; Single left-pointing angle quotation
140 214 8C 10001100 Œ &#140; Latin capital ligature OE
141 215 8D 10001101      
142 216 8E 10001110 Ž &#142; Latin capital letter Z with caron
143 217 8F 10001111      
144 220 90 10010000      
145 221 91 10010001 &#145; Left single quotation mark
146 222 92 10010010 &#146; Right single quotation mark
147 223 93 10010011 &#147; Left double quotation mark
148 224 94 10010100 &#148; Right double quotation mark
149 225 95 10010101 &#149; Bullet
150 226 96 10010110 &#150; En dash
151 227 97 10010111 &#151; Em dash
152 230 98 10011000 ˜ &#152; Small tilde
153 231 99 10011001 &#153; Trade mark sign
154 232 9A 10011010 š &#154; Latin small letter S with caron
155 233 9B 10011011 &#155; Single right-pointing angle quotation mark
156 234 9C 10011100 œ &#156; Latin small ligature oe
157 235 9D 10011101      
158 236 9E 10011110 ž &#158; Latin small letter z with caron
159 237 9F 10011111 Ÿ &#159; Latin capital letter Y with diaeresis
160 240 A0 10100000   &#160; Non-breaking space
161 241 A1 10100001 ¡ &#161; Inverted exclamation mark
162 242 A2 10100010 ¢ &#162; Cent sign
163 243 A3 10100011 £ &#163; Pound sign
164 244 A4 10100100 ¤ &#164; Currency sign
165 245 A5 10100101 ¥ &#165; Yen sign
166 246 A6 10100110 ¦ &#166; Pipe, Broken vertical bar
167 247 A7 10100111 § &#167; Section sign
168 250 A8 10101000 ¨ &#168; Spacing diaeresis - umlaut
169 251 A9 10101001 © &#169; Copyright sign
170 252 AA 10101010 ª &#170; Feminine ordinal indicator
171 253 AB 10101011 « &#171; Left double angle quotes
172 254 AC 10101100 ¬ &#172; Not sign
173 255 AD 10101101 ­ &#173; Soft hyphen
174 256 AE 10101110 ® &#174; Registered trade mark sign
175 257 AF 10101111 ¯ &#175; Spacing macron - overline
176 260 B0 10110000 ° &#176; Degree sign
177 261 B1 10110001 ± &#177; Plus-or-minus sign
178 262 B2 10110010 ² &#178; Superscript two - squared
179 263 B3 10110011 ³ &#179; Superscript three - cubed
180 264 B4 10110100 ´ &#180; Acute accent - spacing acute
181 265 B5 10110101 µ &#181; Micro sign
182 266 B6 10110110 &#182; Pilcrow sign - paragraph sign
183 267 B7 10110111 · &#183; Middle dot - Georgian comma
184 270 B8 10111000 ¸ &#184; Spacing cedilla
185 271 B9 10111001 ¹ &#185; Superscript one
186 272 BA 10111010 º &#186; Masculine ordinal indicator
187 273 BB 10111011 » &#187; Right double angle quotes
188 274 BC 10111100 ¼ &#188; Fraction one quarter
189 275 BD 10111101 ½ &#189; Fraction one half
190 276 BE 10111110 ¾ &#190; Fraction three quarters
191 277 BF 10111111 ¿ &#191; Inverted question mark
192 300 C0 11000000 À &#192; Latin capital letter A with grave
193 301 C1 11000001 Á &#193; Latin capital letter A with acute
194 302 C2 11000010 Â &#194; Latin capital letter A with circumflex
195 303 C3 11000011 Ã &#195; Latin capital letter A with tilde
196 304 C4 11000100 Ä &#196; Latin capital letter A with diaeresis
197 305 C5 11000101 Å &#197; Latin capital letter A with ring above
198 306 C6 11000110 Æ &#198; Latin capital letter AE
199 307 C7 11000111 Ç &#199; Latin capital letter C with cedilla
200 310 C8 11001000 È &#200; Latin capital letter E with grave
201 311 C9 11001001 É &#201; Latin capital letter E with acute
202 312 CA 11001010 Ê &#202; Latin capital letter E with circumflex
203 313 CB 11001011 Ë &#203; Latin capital letter E with diaeresis
204 314 CC 11001100 Ì &#204; Latin capital letter I with grave
205 315 CD 11001101 Í &#205; Latin capital letter I with acute
206 316 CE 11001110 Î &#206; Latin capital letter I with circumflex
207 317 CF 11001111 Ï &#207; Latin capital letter I with diaeresis
208 320 D0 11010000 Ð &#208; Latin capital letter ETH
209 321 D1 11010001 Ñ &#209; Latin capital letter N with tilde
210 322 D2 11010010 Ò &#210; Latin capital letter O with grave
211 323 D3 11010011 Ó &#211; Latin capital letter O with acute
212 324 D4 11010100 Ô &#212; Latin capital letter O with circumflex
213 325 D5 11010101 Õ &#213; Latin capital letter O with tilde
214 326 D6 11010110 Ö &#214; Latin capital letter O with diaeresis
215 327 D7 11010111 × &#215; Multiplication sign
216 330 D8 11011000 Ø &#216; Latin capital letter O with slash
217 331 D9 11011001 Ù &#217; Latin capital letter U with grave
218 332 DA 11011010 Ú &#218; Latin capital letter U with acute
219 333 DB 11011011 Û &#219; Latin capital letter U with circumflex
220 334 DC 11011100 Ü &#220; Latin capital letter U with diaeresis
221 335 DD 11011101 Ý &#221; Latin capital letter Y with acute
222 336 DE 11011110 Þ &#222; Latin capital letter THORN
223 337 DF 11011111 ß &#223; Latin small letter sharp s - ess-zed
224 340 E0 11100000 à &#224; Latin small letter a with grave
225 341 E1 11100001 á &#225; Latin small letter a with acute
226 342 E2 11100010 â &#226; Latin small letter a with circumflex
227 343 E3 11100011 ã &#227; Latin small letter a with tilde
228 344 E4 11100100 ä &#228; Latin small letter a with diaeresis
229 345 E5 11100101 å &#229; Latin small letter a with ring above
230 346 E6 11100110 æ &#230; Latin small letter ae
231 347 E7 11100111 ç &#231; Latin small letter c with cedilla
232 350 E8 11101000 è &#232; Latin small letter e with grave
233 351 E9 11101001 é &#233; Latin small letter e with acute
234 352 EA 11101010 ê &#234; Latin small letter e with circumflex
235 353 EB 11101011 ë &#235; Latin small letter e with diaeresis
236 354 EC 11101100 ì &#236; Latin small letter i with grave
237 355 ED 11101101 í &#237; Latin small letter i with acute
238 356 EE 11101110 î &#238; Latin small letter i with circumflex
239 357 EF 11101111 ï &#239; Latin small letter i with diaeresis
240 360 F0 11110000 ð &#240; Latin small letter eth
241 361 F1 11110001 ñ &#241; Latin small letter n with tilde
242 362 F2 11110010 ò &#242; Latin small letter o with grave
243 363 F3 11110011 ó &#243; Latin small letter o with acute
244 364 F4 11110100 ô &#244; Latin small letter o with circumflex
245 365 F5 11110101 õ &#245; Latin small letter o with tilde
246 366 F6 11110110 ö &#246; Latin small letter o with diaeresis
247 367 F7 11110111 ÷ &#247; Division sign
248 370 F8 11111000 ø &#248; Latin small letter o with slash
249 371 F9 11111001 ù &#249; Latin small letter u with grave
250 372 FA 11111010 ú &#250; Latin small letter u with acute
251 373 FB 11111011 û &#251; Latin small letter u with circumflex
252 374 FC 11111100 ü &#252; Latin small letter u with diaeresis
253 375 FD 11111101 ý &#253; Latin small letter y with acute
254 376 FE 11111110 þ &#254; Latin small letter thorn
255 377 FF 11111111 ÿ &#255; Latin small letter y with diaeresis

 str和bytes的區別bytes在python3中明確表示2進制數據。

字符串和二進制bytes之間的轉換

字符串-->二進制,使用encode()

二進制-->字符串,使用decode('字符編碼XXX')

decode('unicode_escape')

decode('utf-8')

...參考https://www.cnblogs.com/zhangmingda/p/9030229.html

 

256


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM