show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 电报信号 本来是 滴答空
- 开始 用电传打字机
- 控制 电报信号收发
- 开始 用电传打字机
- 电传打字机数据 可以存储于纸带上
- 每行 有7个 输入位
- 总共 可以表示128个字符
- 每行 有7个 输入位
- 这就是 ASCII的由来
- 有些字符 我们是能看到的
- 还有些字符 我们看不到
- 比如
\n
- 可以输出这个
\n
吗?🤔
-
直接print
- print()
-
输出\n
- print("\n")
-
输出结果
- 如果 有
\n
的话- 就换
2
行
- 就换
- 如果 没
\n
的话- 只换
1
行
- 只换
- 那我多输出几个呢?
- 每多一个就会多换一行
- 这
\n
对应哪个字符呢?
-
查看序号
- ord("\n")
-
查看十六进制的序号
- hex(ord("\n"))
-
运行结果
\n
确实是第十个字符
- 看看 ascii码表是
- 如何定义 这
第10个
字符的
- 如何定义 这
- 身处 黑暗森林 深处
- 我们 找到了 一个突破口
- 第十个字符 为 LF
- 我们 找到了 一个突破口
-
十进制的
10
就是 十六进制的0x0A
- 这个数值在
ascii
码表中意思是LF
- 这个数值在
-
LF啥意思?
- LF 意味着
- Line Feed
- 喂行
- 喂一行纸
- 那我可以用这个
\n
- 在字符中间换行吗?
- 输出字符串中带有\n
print("Hello\nWorld")
- 在游乐场中 尝试
- 中途换行 成功!
- 可以 多来几个换行符 吗?
- 想要换行
- 就往 字符串里面加
\n
- 就往 字符串里面加
print("He\nllo\nWor\nld")
- 显然这个
\n
就是一个换行- 字符串里面 有
1
个\n- 就意味着 需要换
1
行
- 就意味着 需要换
- \n英文 是
Line Feed
- 意思 就是
新换1行
- 意思 就是
- 字符串里面 有
- 换行 这东西
- 其实比 ascii的历史 还要悠久
- 从打字机的时代 就有了
- 为什么 要有
换行符
呢?
- 如果没有换行符的话
- 只能靠 输出空格
- 完成换行
- 只能靠 输出空格
- 有了
L
ineF
eed- 一键 就直接换行 了
L
ineF
eed 提高了效率
- 一键 就直接换行 了
- 两个换行符
- 就换两行
- 可以用chr函数
- 完成换行么?
- 输出 ascii值为10的字符
chr(10)
- 把这个字符 放在print里面输出
print("hello"+chr(10)+"world")
- 使用 加号
- 进行 字符串的拼接
- 纯文本中 也会有 换行符 么?
- 我们去看看 纯文本文件
git clone https://github.com/overmind1980/oeasy-python-tutorial.git
- 首先下载 这个仓库
- 然后找到 安德森仙话 这个本书
- 然后编辑这个文件
vi oeasy-python-tutorial/samples/000016/anderson_fairy_tales.txt
- 如果无法下载
- 去找百度网盘
- 在本地的浏览器中
- 从百度网盘下载
- 链接: https://pan.baidu.com/s/1IzuIMVEpiCIGklCW5YWmSg?pwd=mfjb 提取码: mfjb
- 从百度网盘下载
- 然后可以在~/Code文件夹下找到
- 然后再用vim
- 打开这个txt文件
- 1个英文字符 占 一个字节
- 318k 大概有 318000个字节
- 大概是 31.8万个 字符
- 这就是 纯文本文档
- 第一行的Andersen 后面有应该有两个换行符
- 总共有多少行呢?
- G到最后一行
- 总共6206行
- 那这6206行
- 对应6206个\n吗?
- 那这6206行
- :%s/\n//gn
- 在从头到尾的范围内
- 统计\n的数量
- 在从头到尾的范围内
- 统计结果
- 确实是6206个换行符
- 每个换行符对应一行
- 所有行 都转化为字节形式
- %!xxd
- 查找0a
- /0a
- 0a0d 总是一起出现
- 确实 能够找到
- Anderson后面的
- 那两个换行符(0a0d)
- Anderson后面的
- Andersen后面真的换了两行吗?
-
%!xxd -r
- 可以把字节形态
- 转化为
- 纯文本形态
- 转化为
- 可以把字节形态
-
文本中的 换行
- 其实就是 换行符的效果
-
在 原始模式下 是换行
- 真的是换了两行
- 这本书到底有多少个字符呢?
- G到最后一行
- 总共20305个行
- 每行 16个字符
- 再加上
- 最后一行的 10个字符
- 合计324890个字符
- 每个字节 都对应 一个字符
- 在 字节模式下 0a 对应着
- 换行符
\n
- 换行符
- 对照文本模式
-
有的地方换两行
-
有的地方换一行
-
这本故事集的名字是
- 《Andersen's Fairy Tales》
- 安德森仙话
- 被收录进入 古登堡计划
\n
就是 换行符- 换行符
- 序号是
- (
1010
)2进制
- (
10
)10进制
- (
0a
)16进制
- (
- 英文是
- LF
- 意思是
Line Feed
- 意思是
- LF
- 序号是
- 可以在《安德森仙话》的文本中
- 总共324890个字符
- 可以找到 每个字符对应的 字节形态
- 其中 6206个"\n"字符
- 对应着 字节b"\x0a"
- 《安德森仙话》 这书的名字
- 好像听起来有点耳熟?🤔
- 我们下次再说!👋