%s说明符使用转换对象str()
,%r使用转换对象repr()
。
对于某些对象(例如整数),它们产生相同的结果,但repr()
特殊之处在于(对于可能的类型)它通常返回有效的Python语法的结果,该结果可用于明确地重新创建其表示的对象。例如,如果您有一个带有结尾字符的字符串,则%s实际上会在新行上显示内容,而%r只会将输出显示为\ n并保持引号完整。
>>> string = "Hello\nworld" >>> print "Example: %s" % string Example: Hello world >>> print "Example: %r" % string Example: 'Hello\nworld'
您可以使用第二个表达式实际重新创建对象。