代码之家  ›  专栏  ›  技术社区  ›  Cyker

Python:原始字符串中的尾随反斜杠[重复]

  •  0
  • Cyker  · 技术社区  · 9 年前

    当前的Python语法不允许输出尾随 \ 在原始字符串中:

    >>> print(r'a\b\c\')
    
    SyntaxError: EOL while scanning string literal
    

    相反,您可以这样编写Bash:

    echo 'a\b\c\'
    

    我明白了 doc 正在说。如果一个表情 '\' 失败,因为反斜杠正在转义引号。我要问的是 r'\' :原始字符串不应该是 未经加工的 (这意味着字符串中的反斜杠是字面意义上的)?

    我们必须写作吗 r'a\b\c' + '\\' 或 'a\\b\\c\\' 生成字符串文字 a\b\c\ 在Python中?我看不出这是怎么回事。

    3 回复  |  直到 7 年前
        1
  •  4
  •   Michael F    9 年前

    从 documentation ,

    具体而言,原始字符串不能以单个反斜杠结尾(因为反斜杠将转义以下引号字符)。还请注意,单反斜杠后跟换行符将被解释为这两个字符作为字符串的一部分,而不是行继续。

        2
  •  1
  •   Nath sirfz    7 年前

    这种限制是由于您需要某种方式来包含 ' 在原始字符串中。否则,就没有办法 bob said "I'm not hungry"

    所以你最终会遇到一个奇怪的情况,在这种情况下,你需要一个转义字符。因此,在原始字符串中,您将 ' 用一个 \ 是的 \ 保持在字符串中。

    所以 r'bob said "I\'m not hungry"'

        3
  •  0
  •   Vibhutha Kumarage    9 年前

    print(r'\') ,Python理解 \' 在这句话中作为一个角色。因为python引发了语法错误,因为print函数中有一个不完整的字符串。 例如,如果需要打印: i am "free" man 你应该写

    print("i am \"free\" man")