一个是字符串,其它印刷字符串的repr()
表示。您可以将该表示重新粘贴到解释器中以再次制作相同的字符串。
当回显变量时,Python交互式提示始终使用repr()
,print
始终使用str()
字符串表示形式。
他们在其他方面是相同的。尝试print repr(raw)
比较:
>>> "'\\x04\\x00\\x00\\x00\\x00\\x00\\x00\\x00g\\xc4|\\x00\\x00\\x00\\x00\\x00'"
"'\\x04\\x00\\x00\\x00\\x00\\x00\\x00\\x00g\\xc4|\\x00\\x00\\x00\\x00\\x00'"
>>> print "'\\x04\\x00\\x00\\x00\\x00\\x00\\x00\\x00g\\xc4|\\x00\\x00\\x00\\x00\\x00'"
'\x04\x00\x00\x00\x00\x00\x00\x00g\xc4|\x00\x00\x00\x00\x00'
>>> print repr("'\\x04\\x00\\x00\\x00\\x00\\x00\\x00\\x00g\\xc4|\\x00\\x00\\x00\\x00\\x00'")
"'\\x04\\x00\\x00\\x00\\x00\\x00\\x00\\x00g\\xc4|\\x00\\x00\\x00\\x00\\x00'"
除非逃脱反斜杠,我看不出差别。 – Makoto
print raw使用'repr'并且只使用raw使用'str'函数。 –
我的意思是输出的差异不在价值本身。我认为两者都用于str –