Python输出格式

Python输出格式,python,python-3.x,Python,Python 3.x,这是Ardit Sulce付费课程中的一个问题: 填入两个{}括号,这样代码的输出就是“欢迎A.S来到我们的商店!” 我的解决办法是 print("Welcome {0[0]}.{1[0]} to our shop!".format(firstname, lastname)) 但作者的解决方案是: print("Welcome {:.1}.{:.1} to our shop!".format(firstname, lastname)) 两种解决方案都有效。作者的解决方案看起来很可爱,但我不明

这是Ardit Sulce付费课程中的一个问题:

填入两个{}括号,这样代码的输出就是“欢迎A.S来到我们的商店!”

我的解决办法是

print("Welcome {0[0]}.{1[0]} to our shop!".format(firstname, lastname))
但作者的解决方案是:

print("Welcome {:.1}.{:.1} to our shop!".format(firstname, lastname))

两种解决方案都有效。作者的解决方案看起来很可爱,但我不明白。

作者的解决方案使用了format mini语言对字符串“精度”的定义。对于浮点值,它是预期的位数

>>> "{:.1}".format(3.14159)
'3e+00'
>>> "{:.2}".format(3.14159)
'3.1'
对于字符串,它是最大字段宽度

>>> "{:.1}".format("foo")
'f'
>>> "{:.2}".format("foo")
'fo'
从:

精度是一个十进制数字,指示对于使用“f”和“f”格式的浮点值,小数点后应显示多少位,对于使用“g”或“g”格式的浮点值,小数点前后应显示多少位对于非数字类型,字段表示最大字段大小-换句话说,字段内容将使用多少个字符。整数值不允许精度


我觉得这个更可爱:

print("Welcome {[0]}.{[0]} to our shop!".format(firstname, lastname))

您不需要0和1,Python知道在{}中,您引用的是第一个和第二个参数。

要添加到chepner的答案中,如果您在他的文档链接上向下滚动到,您也会找到冒号的解释

在大多数情况下,语法与旧的%格式相似,添加了{}和:used而不是%。例如,“%03.2f”可以翻译为“{:03.2f}”


您还将看到,
{}{}
相当于
{0},{1}
(即隐含位置)。

我对语法并不完全熟悉,但它似乎选择了索引
1
。这篇文章可能会有帮助:这也可以使用:
print(“欢迎{}.{}光临我们的店铺!”.format(firstname[0],lastname[0])
,或者使用f字符串:
print(f“欢迎{firstname[0]}.{lastname[0]}光临我们的店铺!”)
请注意,如果
firstname
lastname
为零长度字符串,作者的解决方案不会引发索引错误。这可能有助于
高级字符串格式设置
@ArvindDhakad感谢PEP-3101参考,这是纯金的
print("Welcome {[0]}.{[0]} to our shop!".format(firstname, lastname))