Python字符串格式说明

Python字符串格式说明,python,string-formatting,Python,String Formatting,我在密码里看到了这一点 print('Job: {!r}, {!s}'.format(5,3)) 答案是 Job: 5, 3 {!r}如何计算?这有什么特别的意义吗 !r在插值之前调用该值 对于整数,str()、默认的format()和repr()输出没有区别。对于其他类型(如字符串),差异更明显: >>> print('Repr of a string: {!r}'.format("She said: 'Hello, world!'")) Repr of a string

我在密码里看到了这一点

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

Job: 5, 3
{!r}
如何计算?这有什么特别的意义吗

!r
在插值之前调用该值

对于整数,
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()
字符串输出


在处理未指定显式
\uuuuu format\uuuuu()
方法(例如
字节
)的类型时,如果显式格式化为
repr()
输出(对调试输出非常有帮助),通常会使用转换,或者当你必须处理多种类型的问题时。

这个问题有什么可怕的地方值得投否决票?对于整数
!r
没有区别!s
在这里,所以这可能会令人惊讶。@MartijnPieters感谢您的评论,有些人宁愿在阅读之前就否决投票,但他们无法给出解决方案。您的帖子确实缺少您期望的信息。我不得不从您的格式中也有
{!s}
这一事实推断出,您可能对输出中没有差异感到惊讶。MartijnPieters指出:“如果你能清楚地说明你为什么问这个问题,或者表明你已经阅读了文档,这会很有帮助。”。下次我会按照你的指示去做。玛蒂恩,是的!s代表str()??@RAJ:是的,我在回答中这样说。@MartijnThanks,这是一个非常有用的答案,应该是“永远向上投票”。@Martijn让你了解大师的见解。谢谢你的澄清。我希望我能通过邮件正式联系到你,有可能吗?@iamshola:对不起,我只为商务和个人联系人保留电子邮件。