繁体   English   中英

Python中的转义序列不一致

[英]Escape sequence inconsistency in Python

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

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

print(raw)
print(str)

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

'"

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

'\'\"'

但是它返回:

'\'"'

为什么在print(raw)语句中仅存在一个反斜杠,而不应该存在两个反斜杠,因为这将反映我已解析为格式化字符串的值? 我为这个愚蠢的问题感到抱歉。

r不代表raw ,代表repr 使用%r在对象上调用repr() 引用repr() doc

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

源代码字符串'\\'"'"\\'\\""是等效对象的两种表示形式。

...打印(原始)...

不。 “ r”代表“表示形式”,而不是“原始”。 但是,字符串字面量的编写方式一经编译就丢失,并且无论如何都无法检索。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM