〇、引入
尝试在 Python 当中直接打印 \this\is\not\the\boat,你会发现:
Python 3.12.5 (tags/v3.12.5:ff3bc82, Aug  6 2024, 20:45:27) [MSC v.1940 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("\this\is\not\the\boat")
<stdin>:1: SyntaxWarning: invalid escape sequence '\i'
        his\is
ot      hoat输出内容很奇怪,还有一个 SyntaxWarning。这是怎么回事?
再试试打印 He's saying "Hello World"
>>> print('He's saying "Hello World"')
  File "<stdin>", line 1
    print('He's saying "Hello World"')
          ^^^^^
SyntaxError: invalid syntax. Perhaps you forgot a comma?这又是怎么回事呢?
一、什么是转义序列?
Python 中,转义序列是一些无法直接输入或具有特殊含义的字符。
Microsoft Learn - C 语言参考: 由反斜杠 ( \ ) 后接字母或数字组合构成的字符组合称为“转义序列”。要在字符常量中表示换行符,单引号或某些其他字符,必须使用转义序列。
使用转义字符可以方便地处理字符串中的特殊情况,比如上面提到的“换行”。
根据Python 文档,如未标注 'r' 或 'R' 前缀,字符串和字节串字面值中,转义序列以类似 C 标准的规则进行解释。
二、有哪些转义序列(字符)?
下方列出 Python 文档中提到的几个常见转义序列,表后将详细介绍。如果对其他相关知识感兴趣,可自行查阅 Python 文档。
| 转义序列 | 含意 | 备注 | 
|---|---|---|
| \ | 忽略反斜杠与换行符 | (1) | 
| \\ | 反斜杠( \) | |
| \' | 单引号( ') | |
| \" | 双引号( ") | |
| \a | ASCII 响铃(BEL) | |
| \b | ASCII 退格符(BS) | |
| \f | ASCII 换页符(FF) | |
| \n | ASCII 换行符(LF) | |
| \r | ASCII 回车符(CR) | |
| \t | ASCII 水平制表符(TAB) | |
| \v | ASCII 垂直制表符(VT) | 
注释:
- 可以在行尾添加一个反斜杠来忽略换行符: - >>> 'This string will not include \ ... backslashes or newline characters.' 'This string will not include backslashes or newline characters.'
- ...... 与 C 标准不同,无法识别的转义序列在字符串里原样保留,即, 输出结果保留反斜杠 。(调试时,这种方式很有用:输错转义序列时,更容易在输出结果中识别错误。)
在 3.6 版本发生变更: 不可识别的转义序列会产生
DeprecationWarning。在 3.12 版本发生变更: 不可识别的转义序列会产生
SyntaxWarning。 在未来的 Python 版本中将最终改为SyntaxError。
下面将继续介绍常用的转义序列。
1. \ - 续行符
参考上方注释,续行符对不同行的内容进行连接,使其作为完整的一行内容来输出。
2. \\ 与 \' 与 \" - 反斜杠、单引号和双引号
当需要在字符串中直接表示反斜杠 \ 时、在单引号字符串中插入双引号时、在双引号字符串中插入单引号时,可以使用它们进行转义并正常输出。
3. \a - 响铃符
让你电脑的操作系统发出提示音。
4. \b - 退格符
删除前一个字符。
5. \f - 换页符
在文本中插入换页。
6. \n - 换行符
表示换行——当前行在该点结束,其后立即开始新行。
7. \r - 回车符
将光标移动到行首。
8. \t 与 \v - 水平与垂直制表符
通常用于缩进,表示水平与垂直制表符。
三、如何避免不正确的转义?
可以通过在字符串前加上'r'来避免转义,这样 Python 就会将其视为原始字符串,不对其中的反斜杠进行转义。
例如,如果我们想要打印出路径 C:\new\text.txt ,但不希望反斜杠被转义,可以这样做:
print(r'C:\new\text.txt')本文(https://www.cgtsoft.com/archives/18/)来源于 CGT Software,使用 CC BY-NC-SA 4.0 许可发布。
 
                                        
                        