宽度和精度使用*

2024-04-25 20:31:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我从一本书中学习Python时遇到了这样一个例子:

>>> '%f, %.2f, %.*f % (1/3.0, 1/3.0, 4, 1/3.0)
# Result: '0.333333, 0.33, 0.3333'

我不太明白这里发生了什么,尤其是中间的“4”。在


Tags: result例子
2条回答

我想你的意思是:

>>> '%f, %2.f, %.*f' % (1/3.0, 1.3, 4, 1/3.0)
'0.333333,  1, 0.3333'

4是一个通配符值,用来代替星号*。扩展后相当于:

^{pr2}$

您发布的行中有两个语法错误。1.3.0不是有效的数字,字符串未闭合。在

这是上述字符串格式的有效版本。在

'%f, %2.f, %.*f' % (1/3.0, 1/3.0, 4, 1/3.0)

和输出:

^{pr2}$

the official docs中找不到有关%f的文档。但是,它似乎正在将4解析为下一个参数的小数位数。在

例如:

'%.*f' % (5, 1/3.0)

退货

'0.33333'

以及

'%.*f' % (6, 1/3.0)

退货

'0.333333'

它似乎是一种提供可变长度精度的方法,因此您可以允许用户指定它。在

相关问题 更多 >