Python字符串格式说明



我在代码中看到过这个,

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

,答案是

Job: 5, 3

{!r}如何评估?在那里它有什么特殊的含义吗?

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

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

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

请注意,其中包括引号。

参见格式字符串语法;!后面的字符指定应用于该值的转换。默认情况下没有转换,但您可以使用!r!s分别将值转换为其repr()表示或str()字符串输出。

通常在处理没有指定显式__format__()方法的类型(例如bytes)、显式格式化为repr()输出(对调试输出非常有帮助)或必须处理混合类型时使用转换。

最新更新