Python 转义序列

VLC 多媒体开发
从理论到实战,图文并茂,详细介绍 libVLC 的跨平台开发!
一去丶二三里

简述

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

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

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

| 版权声明:一去、二三里,未经博主允许不得转载。

转义序列

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

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

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

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

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

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

以下是 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 的缩写,以其开头的字符串被称作原始字符串,并将反斜杠视为原义字符。因此,其中的任何转义序列都不会被特别处理,将会被忽略。

展开阅读全文
©️2020 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值