什么';python中%r、%s和%d之间的区别是什么?

什么';python中%r、%s和%d之间的区别是什么?,python,string,Python,String,嗯,我只是在python上总是使用%r,但我不知道什么时候我必须使用这些其他格式…这在中进行了解释。总之, %d将格式化一个数字以供显示 %s将插入对象的表示字符串(即str(o)) %r将插入对象的规范字符串表示形式(即repr(o)) 如果您正在格式化一个整数,那么它们是等效的。对于大多数对象,情况并非如此。中对此进行了解释。总之, %d将格式化一个数字以供显示 %s将插入对象的表示字符串(即str(o)) %r将插入对象的规范字符串表示形式(即repr(o)) 如果您正在格式化一个

嗯,我只是在python上总是使用%r,但我不知道什么时候我必须使用这些其他格式…

这在中进行了解释。总之,

  • %d
    将格式化一个数字以供显示
  • %s
    将插入对象的表示字符串(即
    str(o)
  • %r
    将插入对象的规范字符串表示形式(即
    repr(o)
如果您正在格式化一个整数,那么它们是等效的。对于大多数对象,情况并非如此。

中对此进行了解释。总之,

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

如果您正在格式化一个整数,那么它们是等效的。对于大多数对象,情况并非如此。

以下是一个补充詹姆斯·亨斯特里奇答案的示例:

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

下面是一个补充詹姆斯·亨斯特里奇答案的例子:

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

这肯定存在于互联网上的某个地方,至少
str.format
对这些稍微清楚一些。这肯定存在于互联网上的某个地方,至少
str.format
对这些稍微清楚一些。