Python 转义序列

来源:互联网 发布:货运单打印软件 编辑:程序博客网 时间:2024/06/16 23:51

简述

在字符串中,有时需要包含一些特殊的符号,但是有些符号不能直接输出,就需要使用转义序列。

关于转义,维基百科这样定义:

转义是当由于技术等原因、无法直接在代码中写出所要的字符时采用的,以多个字符的有序组合来表示原本需要的字符的手段,而转义序列(escape sequence)指在转义时使用的有序字符组合。

  • 简述
  • 转义序列
  • 原始字符串

版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/liang19890820

转义序列

作为一名伟大的程序员,在向别人介绍自己的职业时,往往会很自豪的说:Hi, "I'm a Pythoner"。如果要在 Python 中表示这句话,不能直接使用单引号或双引号。

>>> print('Hi, "I'm a Pythoner"')...SyntaxError: invalid syntax>>> >>> print("Hi, "I'm a Pythoner"")...SyntaxError: invalid syntax

要解决这个问题,有两种方式:

  • 使用三重引号
  • 使用转义序列

转义序列以反斜杠(\)开头,并以不同的方式解释。如果使用单引号来表示字符串,那么字符串内的所有单引号都必须转义,双引号也不例外。

>>> print('''Hi, "I'm a Pythoner"''')  # 使用三重引号Hi, "I'm a Pythoner">>> >>> print('Hi, "I\'m a Pythoner"')  # 转义单引号Hi, "I'm a Pythoner">>> >>> print("Hi, \"I'm a Pythoner\"")  # 转义双引号Hi, "I'm a Pythoner"

以下是 Python 支持的所有转义序列的列表:

转义序列 说明 \(行尾) 续行符 \\ 反斜杠 \' 单引号 \" 双引号 \a 响铃 \b 退格(Backspace) \f 换页 \n 换行 \r 回车 \t 水平制表符 \v 垂直制表符 \ooo 值为八进制 ooo 的字符 \xhh 值为十六进制 hh 的字符

测试其中的转义序列,感受一下实际的意思:

>>> print('C:\\Windows\\System32')C:\Windows\System32>>> >>> print('I like \nPython')I like Python>>> >>> print('This is \x48\x45\x58')This is HEX

原始字符串

原始字符串(Raw String),简单理解就是:字符串中的每个字符都表示原始含义。

有时,可能希望忽略字符串中的转义序列:

>>> print('This is \x48\x45\x58')This is HEX

遗憾的是,这里的反斜杠并不是原始符号的含义,而是和后面的字符一起表示十六进制(被转义了)。

如何避免呢?很 easy,为字符串加上前缀 r 或者 R(大小写均可):

>>> print(r'This is \x48\x45\x58')This is \x48\x45\x58

R 是 Raw 的缩写,以其开头的字符串被称作原始字符串,并将反斜杠视为原义字符。因此,其中的任何转义序列都不会被特别处理,将会被忽略。

1 1