续行符与三引号

回忆上次内容

  • 上次还是转义序列

类型

英文

符号

\a

bell

响铃

\b

backspace

退格

\t

tab

水平制表符

\v

vertical tab

垂直制表符<br>换行不回车

\\\\

backslash

反斜杠

\\"

double quote

双引号

\\'

single quote

单引号

\xhh

具体字符

输出(hh)<sub>16 进制</sub>对应的ascii 字符

\ooo

具体字符

输出(nnn)<sub>8 进制</sub>对应的ascii 字符

  • 黑暗森林已经渐渐清晰

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _python

  • 上图中提到的​​续行符​
  • line continuation character
  • 是哪个字符呢?

神奇的-反斜杠​​\​

  • ​\​​是 转义字符
  • 转义转义 转化含义
  • python3 在 多行输出的时候
  • 也有 特别的应用

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _反斜杠_02

  • 结尾处有​​\​
  • 下一行 需要 ​​连​​在一起来执行
  • 尝试下面这种东西
  • 在这里 反斜杠实现的是 ​​续行​​的效果
  • 此处反斜杠 就是 ​​"续行符"​
  • line continuation character

具体试试

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _python_03

  • 好像 确实可以
  • 这有什么意义吗?

编辑文件

  • 如果 某一行 ​​特别​​长
  • 超过了 80个字符
  • 就没有必要一行 写完
  • 适当时候加上 ​​续行符​

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _反斜杠_04

  • 也能得到 相应的效果
  • 各个被加数 对齐
  • 看起来 也比较美观

字符串续行符

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _python_05

  • Σὺ καὶ δέδορκας κοὐ βλέπεις.
  • 性格是长期延续的习惯(希腊谚语)

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _反斜杠_06

  • 运行结果

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _反斜杠_07

  • 究竟应该如何理解continue呢?

contain

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _反斜杠_08

  • con 一起
  • ten 拉伸

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _转义_09

  • contain
  • 一起拉伸
  • 意思是包含着

continue

  • 一个挨一个

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _转义_10

  • 以不间断的连续方式连接在一起
  • 连续地

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _反斜杠_11

continent

  • 各大洲本来都是
  • 手拉手连在一起的

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _python_12

  • 所以叫大陆

continuation

  • line continuation character

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _python_13

  • 让行也手拉手连续起来的符号
  • 续行符
  • 尝试输出个标题(banner)

续行符

  • 先换行 再续航
  • 换行是​​\n​
  • 续航是​​\​
  • 把上下的行都连起来

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _转义_14

  • 能把cowsay输出的 字符画
  • 放到 python程序 里面么?
  • 尝试​​改造​​ 小动物输出的 效果

得到cow

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _转义_15

笨方法

  • 第一行加上print("

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _python_16

  • 最后一行加上")

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _转义_17

  • 批量替换
  • :1,9s/$/\\\\n\\\\/
  • 这个替换是什么意思呢?

替换细节

  • ​1,9s/$/\\n\\/g​
  • 1,9s
  • 在1-9行范围内替换substitute

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _反斜杠_18

  • 各部分之间用​​/​​进行分割
  • 被替换模式
  • ​$​​ 行尾结束符
  • 替换为的模式
  • ​\\n\\​
  • 先换行再续行

尝试运行

  • :nohls 取消高亮

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _转义_19

  • 结果

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _python_20

  • 出现了一个不合理的换行

修改

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _转义_21

  • 修改牛尾巴的位置

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _python_22

  • 运行正常

总结

  • ​\​​ 首先是转义字符
  • 可以和别的字符构成转义序列
  • ​\a​​是 ␇ (bell),
  • ​\b​​ 退回一格
  • ​\t​​ 水平制表符
  • ​\v​​、​​\f​​ LineFeed
  • ​\\ ​​输出 ​​\​
  • ​\" ​​输出 ​​"​
  • ​\' ​​输出 ​​'​
  • ​\xhh​​ 通过 16 进制数值转义
  • ​\nnn​​ 通过 8 进制数值转义
  • ​\​​ 还是续行字符
  • 放在行尾
  • 可以让下一行和本行连成一行

[oeasy]python0053_ 续行符_line_continuation_python行尾续行 _python_23