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:对不起,我只为商务和个人联系人保留电子邮件。