Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0299
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
- 本教程同步发布在:
- 个人网站: `https://oeasy.org`
- 蓝桥云课: `https://www.lanqiao.cn/courses/3584`
- GitHub: `https://github.com/overmind1980/oeasy-python-tutorial`
- Gitee: `https://gitee.com/overmind1980/oeasypython`
---- 电报信号 本来是 滴答空
- 开始 用电传打字机
- 控制 电报信号收发
- 开始 用电传打字机
- 电传打字机数据 可以存储于纸带上
- 每行 有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的历史 还要悠久
- 从打字机的时代 就有了
- 为什么 要有
换行符呢?
- 如果没有换行符的话
- 只能靠 输出空格
- 完成换行
- 只能靠 输出空格
- 有了
LineFeed- 一键 就直接换行 了
LineFeed 提高了效率
- 一键 就直接换行 了
- 两个换行符
- 就换两行
- 可以用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"
- 《安德森仙话》 这书的名字
- 好像听起来有点耳熟?🤔
- 我们下次再说!👋
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。























