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

mah*_*ahr 0 python string

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

Jam*_*dge 14

这在Python文档中有解释.简而言之,

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

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


unu*_*tbu 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
Run Code Online (Sandbox Code Playgroud)