我正在从一本书中学习 Python,并遇到了这个例子:
>>> '%f, %.2f, %.*f % (1/3.0, 1/3.0, 4, 1/3.0)
# Result: '0.333333, 0.33, 0.3333'
不太明白这里发生了什么,尤其是中间的“4”。
我正在从一本书中学习 Python,并遇到了这个例子:
>>> '%f, %.2f, %.*f % (1/3.0, 1/3.0, 4, 1/3.0)
# Result: '0.333333, 0.33, 0.3333'
不太明白这里发生了什么,尤其是中间的“4”。
我想你的意思是这样的:
>>> '%f, %2.f, %.*f' % (1/3.0, 1.3, 4, 1/3.0)
'0.333333, 1, 0.3333'
4
是用于代替星号的通配符值*
。展开后将相当于:
>>> '%f, %2.f, %.4f' % (1/3.0, 1.3, 1/3.0)
您发布的行中有两个语法错误。1.3.0 不是有效数字,并且字符串未关闭。
这是所述字符串格式的有效版本。
'%f, %2.f, %.*f' % (1/3.0, 1/3.0, 4, 1/3.0)
和输出:
'0.333333, 0.33, 0.3333'
我在官方文档中找不到关于 %.*f的文档。但是,它似乎将 4 解析为您想要在下一个参数处执行的小数位数。
例如:
'%.*f' % (5, 1/3.0)
返回
'0.33333'
和
'%.*f' % (6, 1/3.0)
返回
'0.333333'
这似乎是一种提供可变长度精度的方法,因此您可以允许您的用户指定它。