[oeasy]python0017_解碼_decode_字節(jié)序列_bytes_字符串_str
解碼 decode
回憶上次內(nèi)容
code就是碼
最早也指電報(bào)碼
后來有各種編碼、密碼、砝碼、條碼
都指的是把各種事物編個(gè)號(hào)
encode就是編碼
編碼就是給事物編個(gè)號(hào)

編碼基本了解了
給事物編號(hào)就是編碼
怎么通過編號(hào)找到原來的事物呢?
解碼
解碼是編碼的逆運(yùn)算
解鈴換需系鈴人

上次把白菜編上號(hào)
這次掃到號(hào)知道是白菜
掃到碼就知道這個(gè)條碼
對(duì)應(yīng)這個(gè)大白菜并知道價(jià)格

這解碼用英文怎么說呢?
解碼(decode)
de 的意思是相反的
defuse 解除保險(xiǎn)炸彈引信
decolor 漂白
defame 中傷
destruct 破壞
demodulation 解調(diào)制
decode 就是和 encode 相反的
把一個(gè)代碼還原為一個(gè)東西

我們的大腦在編碼解碼
計(jì)算機(jī)也可以編碼解碼
我們用 python 試試解碼
編解碼

str(字符串)
'a'
encode(編碼)之后為
b'\x61'

bytes(字節(jié)序列)
b'\x61'
decode(解碼)之后得到str(字符串)
'a'
編碼(encode) 和解碼(decode) 互為逆運(yùn)算
很像
字符(chr)和 序號(hào)(ord)
一陰一陽之謂道
編碼解碼
可以先編碼再解碼
也可以先解碼再編碼
繞來繞去
也沒做神馬??

掌握這個(gè)基礎(chǔ)是最起碼
基本功要練得硬橋硬馬
實(shí)戰(zhàn)方能穩(wěn)扎穩(wěn)打
否則以后各種亂碼

字節(jié)編碼其實(shí)已經(jīng)形成一個(gè)閉環(huán)
閉環(huán)

字符的這三個(gè)東西形成了一個(gè)閉環(huán)
字符本身
字符序號(hào)數(shù)字
字符的字節(jié)狀態(tài)

對(duì)一個(gè)字節(jié)可以解碼為字符
對(duì)多個(gè)字節(jié)可以解碼嗎?
解碼

help(bytes.decode)help(b"a".decode)
查詢幫助手冊(cè)

不止字符串
任何進(jìn)入計(jì)算機(jī)的東西都需要編碼
圖像編碼
圖像、聲音、影片
計(jì)算機(jī)中的一切都需要編碼

編碼之后才能存儲(chǔ)、傳輸
還原的時(shí)候需要解碼
換一種編碼方式叫做轉(zhuǎn)碼

回到字符編碼
ascii編碼為什么這樣編呢?
是亂編的嗎?
大小字母差值
那么大小寫字母之間有什么關(guān)系呢
0x61-0x7A
這個(gè)范圍是小寫字母0x41-0x5A
這個(gè)范圍是大寫字母
大寫字母和小寫字母相差(
32
)10進(jìn)制

為什么不多不少
就差 (
32
)10進(jìn)制
呢?怎么那么寸呢???
先去總結(jié)一下
總結(jié)
decode
就是解碼
解碼和編碼可以轉(zhuǎn)化
encode 編碼
decode 解碼
互為逆過程
大小寫字母之間序號(hào)全都相差(
32
)10進(jìn)制

這是為什么呢???
我們下次再說????
藍(lán)橋->https://www.lanqiao.cn/teacher/3584
github->https://github.com/overmind1980/oeasy-python-tutorial
gitee->https://gitee.com/overmind1980/oeasypython
視頻->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy
