[oeasy]python0054_三引号_原样显示字符串_triple_quoted

三引号

回忆上次内容

  • \ 首先是转义字符

    • 可以 和别的字符 构成转义序列

      • \a是 ␇ (bell),
      • \b 退回一格
      • \t 水平制表符
      • \v\f LineFeed
      • \\ 输出 \
      • \" 输出 "
      • \' 输出 '
      • \xhh 通过 16 进制数值转义
      • \nnn 通过 8 进制数值转义
  • \ 还是 续行字符

    • 放在 行尾
    • 可以让 下一行和本行 连成一行

图片描述

  • 有 什么方法 让字符串

    • 原样输出吗?

搜索STRINGS的帮助

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第1张图片

  • 三引号 引用的

    • triple-quotes
    • 可以 原样输出

试炼

  • 先试试 回车符

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第2张图片

  • 去看看

    • 三引号 的 帮助手册

查看参考

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第3张图片

  • 在 帮助模式下

    • 查找"""

图片描述

  • 在 三引号 引用中

    • 换行符 和 引号

      • 都会被 原样显示

重温

  • 转义练习

    • 如果 没有转义的话

      • 会报错
    • 不知 字符串 何时结束

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第4张图片

  • 把 这些转义 应用起来

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第5张图片

  • 如果 上面 最后这句话

    • 用三引号输出的话
    • 应该怎么写?
  • 不要翻页

三引号输出

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第6张图片

  • 引号、回车的问题 都自动解决

    • 但是反斜杠(\) 还是 需要转义

三引号输出

  • 除了反斜杠 需要转义 之外

    • 其余 都可以 原样输出

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第7张图片

三引号原样输出

  • 输出 帮助文件

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第8张图片

  • 输出 网页文件

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第9张图片

  • 回车和tab

    • 都可以 原样保留
  • 能否 原样输出 一些好玩的

    • cowsay之类的东西
    • 都放到 三引号里面
  • 可以试试吗?

走起来

sudo apt install cowsay
echo "oeasy" | cowsay -f turtle > t.py
vi t.py

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第10张图片

  • 用 vim 打开 t.py

修改

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第11张图片

  • 前后加上print 函数 和 三引号

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第12张图片

  • 尝试运行

处理

  • 运行结果

    • 海龟会坍塌

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第13张图片

  • 问题在于 结尾处的反斜杠

    • 这反斜杠 本是龟壳的一部分
    • 由于在行尾
    • 被理解为了 "续行符"

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第14张图片

  • 需要明确地 写出反斜杠

    • 1反斜杠(\)

      • 代表着 转义续行
    • 2反斜杠(\\)

      • 才代表着 反斜杠这个字符
  • 要把 个反斜杠

    • 替换为 个反斜杠
    • 怎么 替换 呢?

批量替换

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第15张图片

  • 分析一下替换语句

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第16张图片

  • :%s/\\/\\\\/g

    • : 表示进入 命令行模式 执行命令
    • % 表示 从第一行到最后一行 全范围执行命令
    • s 表示 substitute 查找替换
    • 查找内容和替换内容 用/隔开

      • 查找内容是\\

        • 反斜杠本身 是 转义字符

          • 表示反斜杠这个字符 需要两个反斜杠
          • \\ 代表1个反斜杠
      • 替换内容是\\\\

        • \\ 代表一个反斜杠
        • \\\\ 代表2个反斜杠
    • g

      • global

        • 每行中查找不止一次

换后效果

  • 替换之后 什么效果

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第17张图片

最终效果

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第18张图片

  • 可以让海龟说话了!
  • 三引号(triple quote)从词源上如何理解呢?

triple

  • tri 来自于 three
  • ple 来自于 plus

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第19张图片

  • triple 是 三倍的、三重的

tri-

[oeasy]python0054_三引号_原样显示字符串_triple_quoted_第20张图片

  • trickle

    • 三水滴、涓涓细流
  • trifle

    • 琐事、小事

总结

  • 这次讲了 三引号的输出
  • 三引号中

    • 回车和引号 都会 被原样输出
    • \ 还是需要从 \\转义
  • 黑暗森林 快被摸排清了

    • 还有哪个 转义序列

      • 没 研究过吗?

图片描述

你可能感兴趣的:(python)