python中%r,%s和%d之间有什么区别?

时间:2013-03-02 03:25:56

标签: python string

好吧,我只是在python上使用%r,但我不知道何时必须使用这些其他格式......

2 个答案:

答案 0 :(得分:14)

the Python documentation中对此进行了解释。简而言之,

  • %d将格式化一个数字以供显示。
  • %s将插入对象的表示字符串表示(即str(o)
  • %r将插入对象的规范字符串表示形式(即repr(o)

如果要格式化整数,则这些是等效的。对于大多数物体,情况并非如此。

答案 1 :(得分:9)

这是一个补充James Henstridge答案的例子:

class Cheese(float):
    def __str__(self):
        return 'Muenster'
    def __repr__(self):
        return 'Stilton'

chunk = Cheese(-123.4)

print(str(chunk))
# Muenster
print(repr(chunk))
# Stilton
print(int(chunk))
# -123
print('%s\t%r\t%d'%(chunk, chunk, chunk))
# Muenster  Stilton -123