如何在原始Python字符串字面量中包含双引号和/或单引号字符?
考虑一下:
>>> r"what"ever"
SyntaxError: invalid syntax
>>> r"what\"ever"
'what\\"ever'
那么我们该怎么获取引号,但又不想要斜杠呢?
而且请不要建议使用 r'what"ever'
,因为那样问题就变成了我们该怎么同时包含两种类型的引号?
7 个回答
10
Python处理字符串的方式有很多种。下面这种字符串写法可以让你使用双引号:
'''what"ever'''
15
如果你需要使用任何类型的引号(单引号、双引号,甚至三重引号),你可以把字符串“组合”起来:
>>> raw_string_with_quotes = r'double"' r"single'" r'''double triple""" ''' r"""single triple''' """
>>> print raw_string_with_quotes
double"single'double triple""" single triple'''
你也可以把原始字符串和非原始字符串“组合”在一起:
>>> r'raw_string\n' 'non-raw string\n'
'raw_string\\nnon-raw string\n'
(0): 实际上,Python 解析器会把这些字符串连接起来,而不是创建多个字符串。如果你使用“+”这个符号,那么就会创建多个字符串并把它们组合在一起。
191
如果你想在字符串中使用双引号,但不想用单引号,你可以直接用单引号来包裹字符串:
r'what"ever'
如果你需要在字符串中同时使用两种引号,可以使用三重引号的字符串:
r"""what"ev'er"""
如果你想在字符串中同时包含两种三重引号的字符串(这种情况非常少见),那就不行了,你需要使用带转义字符的非原始字符串。