Python字符串格式说明

iam*_*ola 3 python string-formatting

我在代码中看到了这个,

print('Job: {!r}, {!s}'.format(5,3))
Run Code Online (Sandbox Code Playgroud)

答案是

Job: 5, 3
Run Code Online (Sandbox Code Playgroud)

怎么{!r}评价?它有什么特别的意义吗?

Mar*_*ers 9

!rrepr()在插值之前调用该值.

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

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

请注意,包括引号.

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

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

  • @iamshola:我只为商业和个人联系人保留电子邮件,抱歉. (2认同)