Python字符串格式说明

时间:2014-06-18 09:29:38

标签: python string-formatting

我在代码中看到了这个,

print('Job: {!r}, {!s}'.format(5,3))

,答案是

Job: 5, 3

{!r}如何评估?它有什么特别的意义吗?

1 个答案:

答案 0 :(得分:9)

!r在插值前调用值repr()

对于整数,str(),默认format()repr()输出没有区别。对于其他类型,例如字符串,差异更明显:

>>> print('Repr of a string: {!r}'.format("She said: 'Hello, world!'"))
Repr of a string: "She said: 'Hello, world!'"

请注意,包含了引号。

Format String Syntax; !后面的字符指定应用于该值的转换。默认为无转换,但您可以使用!r!s将值分别转换为其repr()表示形式或str()字符串输出。

当明确格式化为__format__()输出时,通常在处理未指定显式bytes方法的类型(例如repr())时使用转换(非常有用于调试输出),或者当你必须处理各种类型时。