逃避Python中的序列不一致

see*_*ker 0 python string-formatting python-3.x

我正在使用Python 3,我希望看到原始/真实表示与使用单引号和双引号的转义序列的字符串表示之间的区别,因此我创建了以下脚本:

raw = "%r" % "\'\""
str = "%s" % "\'\""

print(raw)
print(str)
Run Code Online (Sandbox Code Playgroud)

print(str)返回(按预期):

'"
Run Code Online (Sandbox Code Playgroud)

现在我希望print(raw)返回:

'\'\"'
Run Code Online (Sandbox Code Playgroud)

然而它返回:

'\'"'
Run Code Online (Sandbox Code Playgroud)

为什么print(raw)语句中只有一个反斜杠,不应该有两个,因为这会反映我已经解析为格式化字符串的值?对不起这个愚蠢的问题我很抱歉

Rob*_*obᵩ 5

r不代表raw,它代表repr.使用%rrepr()对象的调用.引用repr()文档:

此函数尝试返回一个字符串,该字符串在传递给eval()时会产生具有相同值的对象

源代码字符串'\'"'"\'\""等价物的两种表示.