相关疑难解决方法(0)

为什么Python的原始字符串文字不能以单个反斜杠结尾?

从技术上讲,任何奇数个反斜杠,如文档所述.

>>> r'\'
  File "<stdin>", line 1
    r'\'
       ^
SyntaxError: EOL while scanning string literal
>>> r'\\'
'\\\\'
>>> r'\\\'
  File "<stdin>", line 1
    r'\\\'
         ^
SyntaxError: EOL while scanning string literal
Run Code Online (Sandbox Code Playgroud)

似乎解析器可以将原始字符串中的反斜杠视为常规字符(不是原始字符串的全部内容吗?),但我可能遗漏了一些明显的东西.TIA!

python string literals rawstring

157
推荐指数
6
解决办法
7万
查看次数

为什么Python中的单个反斜杠原始字符串会导致语法错误?

另请参阅为什么我不能用反斜杠结束原始字符串?为什么不能Python的原始字符串文字用一个反斜杠结束?问题和相关答案.


在我的Python 2程序中,我使用了大量带有嵌入式反斜杠的文字字符串.我可以使用另一个反斜杠来转义每个反斜杠(例如:) "red\\blue"或使用Python原始字符串(例如:) r"red\blue".我已经对原始字符串方法进行了标准化,除了一个方法之外,它在所有情

如果我想表示一个双反斜杠,我可以使用r"\\",但如果我尝试输入一个反斜杠文字r"\"Python抱怨语法错误.显而易见的解决方法是"\\"在这种情况下使用,但为什么单个原始字符串反斜杠是错误的? 这是Python中的错误吗? 有没有办法将单个反斜杠编码为原始字符串?

例:

>>> r"red\blue"
'red\\blue'
>>> r"\\"
'\\\\'
>>> r"\"
  File "<stdin>", line 1
    r"\"
       ^
SyntaxError: EOL while scanning string literal
>>> 
Run Code Online (Sandbox Code Playgroud)

我宁愿在整个程序中使用原始字符串保持一致,并且"\\"在几个地方使用它看起来像一个kludge.使用r"\\"[0]并不是更好.我一直在使用一个常数也被认为是BACKSLASH其中BACKSLASH = r"\\"[0]在程序的开始.另一个kludge.

更新: 当原始字符串末尾有一个奇数个反斜杠时,也会发生此错误.使用的默认字符串扫描程序将反斜杠解释为转义字符,以便最后一个反斜杠将转义结束引号字符.它的目的是"并且'可以嵌入到字符串中,但是生成的字符串仍然会将内部的反斜杠作为普通字符.

有几个与此问题相关的问题,但没有一个答案解释了为什么单个反斜杠原始字符串是错误或如何将单个反斜杠编码为原始字符串:

python用双反斜杠替换单反斜杠

无法在Python中打印'\'(单反斜杠)

Python正则表达式用单反斜杠替换双反斜杠

在Python 3中将单反斜杠转换为双反斜杠

为什么我不能用反斜杠结束原始字符串?

为什么Python的原始字符串文字不能以单个反斜杠结尾?

python string syntax-error

7
推荐指数
1
解决办法
1388
查看次数

在原始字符串中尾随斜杠

只是一个快速愚蠢的问题.如何在原始字符串文字中编写尾部斜杠?

r = r'abc\'  # syntax error
r = r'abc\\' # two slashes: "abc\\"
Run Code Online (Sandbox Code Playgroud)

python syntax

5
推荐指数
1
解决办法
287
查看次数

不应该r'\'在python中是一个有效的字符串值?

可能重复:
为什么我不能用\结束一个原始字符串

鉴于r'\\'相当于'\\\\',为什么r'\'不等同于'\\'

我在python3.2上得到的是

print(r'\')
  File "<stdin>", line 1
    print(r'\')
              ^
SyntaxError: EOL while scanning string literal
Run Code Online (Sandbox Code Playgroud)

python python-3.x

2
推荐指数
1
解决办法
246
查看次数

Python - 将两个原始字符串与用户名连接起来

我有一个像这样的原始字符串,

MasterFile_Name = r'C:\Users\ABC\X12345\DEF\File - Test.xlsx'
Run Code Online (Sandbox Code Playgroud)

我想通过变量传递 X12345 的值。为此,我正在做这样的事情

我的 ID = X12345

MasterFile_Name = r'C:\Users\ABC\' + MyID + '\DEF\File - Test.xlsx'
Run Code Online (Sandbox Code Playgroud)

MasterFile_Name = r'C:\Users\ABC\' + MyID + r'\DEF\File - Test.xlsx'
Run Code Online (Sandbox Code Playgroud)

他们都不为我工作。

请帮我解决这个问题。

python python-3.x

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×5

python-3.x ×2

string ×2

literals ×1

rawstring ×1

syntax ×1

syntax-error ×1