转义序列
回忆上次内容
- 上次回顾了
5bit-Baudot
博多码的来历 - 从 莫尔斯码 到 博多码
- 原来
- 人 来 收发电报
- 现在
- 机器 来 收发电报
- 输入方式
- 从 电键
- 改成 键盘
- 输出方式
- 从 纸带
- 变成 打印纸张
- 后来
- 电传打字机ASR-33
- 成为 初代 经典终端
- 除了
\n
和\r
之外
- 还有什么
特殊
字符 吗?🤔
搜索 ASCII
- 找到
ascii
的定义
- 还有 好多
- 类似于
\n
、\r
的 特殊字符
动手试试
- 总结一下
- 各种 转义字符
转义总结
\a
- 响铃 ␇ (bell)
- 电传打字机 回车前 都会预警
响铛
- 避免 回车过程中 误打字符
- 可以
- 手动发送编码
- 敲一下 这个铃铛
- 后来
- 是让 蜂鸣器 鸣叫
- 现在
- 终端 或者 服务器
- 一般没有 蜂鸣器
\b
- BackSpace
- 退回一格
\t
- table
- 水平制表符
- Horizontal Tab
- 效果是空四个格
\v
、\f
- 效果就是
- 纯喂纸 不回车
黑暗森林
- 再看 ascii码表
- 黑暗森林
- 好像也没有 那么
神秘
了 - 已经 有些部分
展示
出来 了
- 为什么 只能
\n
- 难道
/n
不行么? - 动手 试试!
实验
- 确实 不行!
ascii
的定义 是源头
- python 对于这些字符的解释
- 是跟 c语言 学的
- 这些特殊的东西
- 都和
\
反斜杠
- 这个字符相关联
- 为什么呢?
反斜杠
- 为什么管 这个方向的斜杠
- 叫
反斜杠
呢?
- 斜杠是 成对儿的
- 有 斜杠
- slash
- /
- 就有 反斜杠
- backslash
- \
- 我们一般都是
右
利手
- 从上往下砍
- 都是 右上到左下
- slash 很顺手
- slash 这个词本身就是砍
- 用鞭子或者锋利的刃来砍
- 暴力的砍
- 主要是对于树来说的
- 顺手的就是 slash
- 反过来不顺手的就是
- backslash
- 对应的是不正常的
- 转化含义的
转义字符
- 转义字符
- escape code
- 有 逆向思维的感觉
- \自身 无法
- 构成一个 具体的字符
- 而是 要和后面的字符 一起
- 构成一个
转义字符
- 转义用的 是
反
斜杠- \
- backslash
转义 Escape
\
反斜杠(backslash)
- 加了其他字符 之后
- 字符 就不是 原来的字面意思 了
- 转义么
- 转义转义
- 转化含义
- 所以
\
反斜杠 这个字符
- 也叫做转义字符
Escape character
\b
这两个字符的序列
- 算是一个转义序列
Escape sequence
\
这个转义字符- 会让
\b
转义序列 - 转义为
Backspace
- 退格这
1
个字符
- 这个退格 是
- 转义序列
\b
转化含义之后的 含义
- 这个 转化后的 含义
- 对应
1
个 ascii字符
- 可以 在键盘
找到
这个字符 吗?
键盘
- 就是
\b
- 键盘上的退格
- 对应的ascii值 就是
8
- 转义的
本质
是什么 呢?
转义本质
- 转义转义转换含义!!!😡
\n
本来是 两个字符- 转义字符
\
反斜线
- 把自己 和后面的字符
n
一起 - 构成了 转义序列
\n
- 转换含义 成为 一个
新
的含义
- 原来的字符是
\
和n
- 转成新的含义为
换行
\r
就不是\
和r
了
\r
是一个整体- 对应一个字符
- 整个对应 ascii 中
- 序号
13
的字符
试试
- 就像
a
对应65
一样
\b
对应8
\b
在 python3 的作用
- 退格
- 你发现了
12\ba
变成1a
了么?
\b
、\x08
、chr(8)
是 同一个字符- 但是这个
\x08
- 是什么意思?
继续转义
- 这个
x08
刚好是
- 退格对应字符的 ascii值
- 退格 对应的值是
8
- 但这个 8 是
- (
0x08
)16进制 - 但是这个
x
是什么意思来着?
x
的意思是hexadecimal
- hex 就是 大着舌头说six
- 后面
2
位16
进制数 - 刚好 对应 一个字节
总结
- 什么是 转义?
- 转义转义 转化含义
\
是 转义字符\n
、\r
是 转义序列
- 还有什么 转义序列 吗?
\a
是 响铃\b
退格键\t
水平制表符 tab键\v
、\f
实现喂纸不回车
- 通过 16进制数值 转义
\xhh
- 输出 (
hh
)16进制
对应的ascii
字符
- 如果我们不输入
x
- 会发生什么呢?
- 为什么会输出
S
呢?🤔 - 我们下次再说!👋
- 蓝桥->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