繁体   English   中英

Python output 格式化

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM