[oeasy]python0041_ 轉(zhuǎn)義字符_轉(zhuǎn)義序列_escape_序列_sequence
轉(zhuǎn)義序列
回憶上次內(nèi)容
上次回顧了
5bit-Baudot
博多碼的來(lái)歷從 莫爾斯碼 到 博多碼
從 紙帶
變成 打印紙張
從 電鍵
改成 鍵盤(pán)
機(jī)器 來(lái) 收發(fā)電報(bào)
人 來(lái) 收發(fā)電報(bào)
原來(lái)
現(xiàn)在
輸入方式
輸出方式
后來(lái)
電傳打字機(jī)ASR-33
成為 初代 經(jīng)典終端
除了
\n
和\r
之外還有什么
特殊
字符 嗎???
搜索 ASCII
找到
ascii
的定義

還有 好多
類(lèi)似于
\n
、\r
的 特殊字符
動(dòng)手試試

總結(jié)一下
各種 轉(zhuǎn)義字符
轉(zhuǎn)義總結(jié)
\a
終端 或者 服務(wù)器
一般沒(méi)有 蜂鳴器
是讓 蜂鳴器 鳴叫
手動(dòng)發(fā)送編碼
敲一下 這個(gè)鈴鐺
避免 回車(chē)過(guò)程中 誤打字符
響鈴 ? (bell)
電傳打字機(jī) 回車(chē)前 都會(huì)預(yù)警
響鐺
可以
后來(lái)
現(xiàn)在
\b
BackSpace
退回一格
\t
table
水平制表符
Horizontal Tab
效果是空四個(gè)格
\v
、\f
純喂紙 不回車(chē)
效果就是
黑暗森林
再看 ascii碼表
好像也沒(méi)有 那么
神秘
了已經(jīng) 有些部分
展示
出來(lái) 了黑暗森林

為什么 只能
\n
難道
/n
不行么?動(dòng)手 試試!
實(shí)驗(yàn)
確實(shí) 不行!

ascii
的定義 是源頭
python 對(duì)于這些字符的解釋
是跟 c語(yǔ)言 學(xué)的
這些特殊的東西
這個(gè)字符相關(guān)聯(lián)
都和
\
反斜杠為什么呢?
反斜杠
為什么管 這個(gè)方向的斜杠
叫
反斜杠
呢?斜杠是 成對(duì)兒的
backslash
\
slash
/
有 斜杠
就有 反斜杠

我們一般都是 ?
右
利手都是 右上到左下
slash 很順手
slash 這個(gè)詞本身就是砍
用鞭子或者鋒利的刃來(lái)砍
順手的就是 slash
暴力的砍
主要是對(duì)于樹(shù)來(lái)說(shuō)的
從上往下砍
反過(guò)來(lái)不順手的就是
backslash
對(duì)應(yīng)的是不正常的
轉(zhuǎn)化含義的
轉(zhuǎn)義字符
轉(zhuǎn)義字符
構(gòu)成一個(gè)
轉(zhuǎn)義字符
構(gòu)成一個(gè) 具體的字符
escape code
有 逆向思維的感覺(jué)
\自身 無(wú)法
而是 要和后面的字符 一起

轉(zhuǎn)義用的 是
反
斜杠\
backslash
轉(zhuǎn)義 Escape
\
反斜杠(backslash)字符 就不是 原來(lái)的字面意思 了
加了其他字符 之后
轉(zhuǎn)義么
轉(zhuǎn)義轉(zhuǎn)義
轉(zhuǎn)化含義

所以
\
反斜杠 這個(gè)字符Escape character
也叫做轉(zhuǎn)義字符
\b
這兩個(gè)字符的序列對(duì)應(yīng)
1
個(gè) ascii字符轉(zhuǎn)義序列
\b
轉(zhuǎn)化含義之后的 含義\
這個(gè)轉(zhuǎn)義字符會(huì)讓
\b
轉(zhuǎn)義序列轉(zhuǎn)義為
Backspace
退格這
1
個(gè)字符算是一個(gè)轉(zhuǎn)義序列
Escape sequence
這個(gè)退格 是
這個(gè) 轉(zhuǎn)化后的 含義
可以 在鍵盤(pán)
找到
這個(gè)字符 嗎?
鍵盤(pán)
就是
\b
對(duì)應(yīng)的ascii值 就是
8
鍵盤(pán)上的退格

轉(zhuǎn)義的
本質(zhì)
是什么 呢?
轉(zhuǎn)義本質(zhì)
轉(zhuǎn)義轉(zhuǎn)義轉(zhuǎn)換含義!!!??
把自己 和后面的字符
n
一起構(gòu)成了 轉(zhuǎn)義序列
\n
\n
本來(lái)是 兩個(gè)字符轉(zhuǎn)義字符
\
反斜線轉(zhuǎn)換含義 成為 一個(gè)
新
的含義原來(lái)的字符是
\
和n
轉(zhuǎn)成新的含義為
換行

\r
就不是\
和r
了序號(hào)
13
的字符\r
是一個(gè)整體對(duì)應(yīng)一個(gè)字符
整個(gè)對(duì)應(yīng) ascii 中
試試
就像
a
對(duì)應(yīng)65
一樣\b
對(duì)應(yīng)8
\b
在 python3 的作用退格
你發(fā)現(xiàn)了
12\ba
變成1a
了么?

\b
、\x08
、chr(8)
是 同一個(gè)字符但是這個(gè)
\x08
是什么意思?
繼續(xù)轉(zhuǎn)義
這個(gè)
x08
剛好是退格對(duì)應(yīng)字符的 ascii值
退格對(duì)應(yīng)的值是
8

但這個(gè) 8 是
(
0x08
)16進(jìn)制但是這個(gè)
x
是什么意思來(lái)著?

x
的意思是hexadecimal
hex 就是 大著舌頭說(shuō)six
后面
2
位16
進(jìn)制數(shù)剛好 對(duì)應(yīng) 一個(gè)字節(jié)
總結(jié)
什么是 轉(zhuǎn)義?
轉(zhuǎn)義轉(zhuǎn)義 轉(zhuǎn)化含義
\
是 轉(zhuǎn)義字符\n
、\r
是 轉(zhuǎn)義序列還有什么 轉(zhuǎn)義序列 嗎?
\a
是 響鈴\b
退格鍵\t
水平制表符 tab鍵\v
、\f
實(shí)現(xiàn)喂紙不回車(chē)通過(guò) 16進(jìn)制數(shù)值 轉(zhuǎn)義
\xhh
輸出 (
hh
)16進(jìn)制
對(duì)應(yīng)的ascii
字符如果我們不輸入
x
會(huì)發(fā)生什么呢?

為什么會(huì)輸出
S
呢???我們下次再說(shuō)!??
藍(lán)橋->https://www.lanqiao.cn/courses/3584
github->https://github.com/overmind1980/oeasy-python-tutorial
gitee->https://gitee.com/overmind1980/oeasypython
視頻->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy