[英]Python output formatting
这是来自 Ardit Sulce 付费课程的一个问题:
填写两个{}括号,使output的代码为“Welcome AS to our shop!”
firstname = "Andy"
lastname = "Smith"
print("Welcome {}.{} to our shop!".format(firstname, lastname))
我的解决方案是
print("Welcome {0[0]}.{1[0]} to our shop!".format(firstname, lastname))
但是作者的解决方法是:
print("Welcome {:.1}.{:.1} to our shop!".format(firstname, lastname))
两种解决方案都有效。作者的一个看起来很可爱,但我不明白。
作者的解决方案使用格式迷你语言对字符串“精度”的定义。 对于浮点值,它是预期的位数。
>>> "{:.1}".format(3.14159)
'3e+00'
>>> "{:.2}".format(3.14159)
'3.1'
对于字符串,它是最大字段宽度。
>>> "{:.1}".format("foo")
'f'
>>> "{:.2}".format("foo")
'fo'
从文档中:
精度是一个十进制数,表示在小数点后应显示多少位数,格式为“f”和“F”的浮点值,或小数点前后的位数,格式为“g”或'G'。 对于非数字类型,该字段指示最大字段大小 - 换句话说,从字段内容中将使用多少个字符。 integer 值不允许使用该精度。
我觉得这个更可爱:
print("Welcome {[0]}.{[0]} to our shop!".format(firstname, lastname))
你不需要0和1,Python知道在{}里面,你指的是第一个和第二个arguments。
要添加到 chepner 的答案,如果您在他的文档链接上向下滚动到Format Examples ,您也会找到对冒号的解释。
在大多数情况下,语法类似于旧的 % 格式,只是添加了 {} 并用:代替了 %。 例如,“%03.2f”可以翻译为“{:03.2f}”。
您还将看到{} {}
等价于{0}, {1}
(即隐含位置)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.