详解:{!r} 的意义
在你提供的代码里,print("Reply was: {!r}".format(reply))
这行代码的作用是把变量 reply
的值以字符串的形式输出,并且会使用 repr()
函数来展示该值。下面来详细剖析:
-
{!r}
的意义:- 这里的
{}
是 Python 字符串格式化时用的占位符。 !r
属于转换标志,它的功能是在格式化之前,先对变量调用repr()
函数。repr()
函数返回的字符串通常是对象的官方表示形式,一般可以用这个字符串重新创建出该对象。
- 这里的
-
format(reply)
的作用:- 此方法会把
reply
变量的值填充到前面字符串里的占位符{!r}
处。
- 此方法会把
-
实际输出效果:
- 假设
reply
的值为字符串'two'
,那么输出结果就是Reply was: 'two'
,这里的单引号是由repr()
函数添加的。 - 假设
reply
的值为整数7
,输出结果则为Reply was: 7
。
- 假设
下面通过例子来直观理解:
reply = 'two'
print("Reply was: {!r}".format(reply)) # 输出:Reply was: 'two'
print("Reply was: {}".format(reply)) # 输出:Reply was: two
reply = 7
print("Reply was: {!r}".format(reply)) # 输出:Reply was: 7
这种格式化方式能够清晰地表明返回值的类型,比如字符串会用引号引起来,而数字则不会。在调试代码的时候,这样的输出形式很有帮助。