>>> r"what"ever"
SyntaxError: invalid syntax
>>> r"what\"ever"
'what\\"ever'
Run Code Online (Sandbox Code Playgroud)
那么我们如何获得报价但不是斜线?
请不要建议,r'what"ever'因为那时问题就变成了我们如何包含两种类型的报价?
Ada*_*eld 129
如果要在字符串中使用双引号而不是单引号,则可以使用单引号作为分隔符:
r'what"ever'
Run Code Online (Sandbox Code Playgroud)
如果您的字符串中需要两种引号,请使用三引号字符串:
r"""what"ev'er"""
Run Code Online (Sandbox Code Playgroud)
如果你想在你的字符串中包含两种三引号字符串(极不可能的情况),你就不能这样做,并且你必须使用带有转义的非原始字符串.
Kar*_*arl 10
Python有多种方法可以执行字符串,以下字符串语法允许您使用双引号:
'''what"ever'''
Run Code Online (Sandbox Code Playgroud)
如果你需要任何类型的引用(两者都是单引号,双引号和三引号),你可以"组合"(0)字符串:
>>> 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'''
Run Code Online (Sandbox Code Playgroud)
您也可以将(0)原始字符串与非原始字符串"组合":
>>> r'raw_string\n' 'non-raw string\n'
'raw_string\\nnon-raw string\n'
Run Code Online (Sandbox Code Playgroud)
(0):实际上python解析器连接字符串,它不会创建多个字符串.如果添加"+"运算符,则会创建并组合多个字符串.
由于我偶然发现了这个答案,它对我有很大帮助,但我发现了一个小语法问题,我觉得我应该避免其他人可能遭受的挫败感。正如所描述的,三重引号字符串适用于这种情况,但请注意,如果字符串中所需的 " 出现在字符串本身的末尾:
somestr = """This is a string with a special need to have a " in it at the end""""
Run Code Online (Sandbox Code Playgroud)
您将在执行时遇到错误,因为连续的“”“”(4)引号会让字符串读取器感到困惑,因为它认为它已经到达字符串的末尾,然后在那里找到一个随机的“。您可以验证这一点通过在 4 个引号中插入一个空格,如下所示:“”“”,这样就不会出现错误。
在这种特殊情况下,您需要使用:
somestr = 'This.....at the end"'
Run Code Online (Sandbox Code Playgroud)
或者使用上面描述的方法,用混合的“和”构建多个字符串,然后在事后将它们连接起来。