当前的Python语法不允许输出原始字符串中的尾随\
:
>>> print(r'a\b\c\')
SyntaxError: EOL while scanning string literal
相反,您可以这样写Bash:
echo 'a\b\c\'
我明白文档在说什么。如果表达式'\'
失败了,因为反斜杠正在转义引号,我不会感到奇怪。我要问的是r'\'
:原始字符串不是指 raw (这意味着字符串中的反斜杠是字面意思)吗?
我们是否需要编写r'a\b\c' + '\\'
或'a\\b\\c\\'
来用Python生成字符串文本a\b\c\
?我看不出这是怎么回事。
发布于 2016-12-10 03:08:59
从文档,
具体来说,原始字符串不能以单个反斜杠结尾(因为反斜杠将转义下面的引号字符)。还要注意的是,一个反斜杠后面跟着一个换行符被解释为这两个字符是字符串的一部分,而不是行的延续。
发布于 2016-12-10 04:15:29
这个限制是因为您需要某种方式在原始字符串中包含一个'
。否则,就无法将bob said "I'm not hungry"
放入字符串中。
所以你会在奇怪的情况下需要一个转义角色来处理这个案子。因此,在原始字符串中,您用一个'
转义一个\
,是的,\
保留在这个字符串中。
原来是r'bob said "I\'m not hungry"'
!!
发布于 2016-12-10 03:34:56
编写print(r'\')
时,Python将该语句中的\'
理解为字符。因为那个python引发了语法错误,因为在print函数中有一个不完整的字符串。举个例子,如果你需要打印i am "free" man
,你应该写
print("i am \"free\" man")
https://stackoverflow.com/questions/41074815
复制相似问题