python中十进制范围内的显示

2024-10-01 17:30:02 发布

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

我正在读wrox开始Python的书。在第2章中,示例说明

>>> print "$.03f" & 30.00123
$30.001

但是,这并不能解释命令的行为。当.3和.003等在shell中具有相同的行为时,为什么要使用.03?此外,它也不能解释当我使用3时会发生什么

^{pr2}$

我试着搜索,但没有得到结果,因为我不知道相关的关键字是什么。在


Tags: 命令示例关键字shellprint时会pr2wrox
3条回答

我觉得“%.3f”、“%.03f”和“%0.003f”之间没有任何区别,小数点后的数字由printf家族处理为一个数字,因此3==03==003。但是,“%.0f”将截断小数位。另外,“%.f”与“%f”不同。在

但是“03”的表示法在printf家族中并不是没用的,它在需要打印的数字前面加零

>>> print "%5d" % (123)
  123
>>> print "%05d" % (123)
00123
>>> print "%5d" % (123456)
123456

您的示例中的“%3f”与我的示例中的“%5d”执行相同的操作。它打印至少三个数字长的字符串。所以

^{pr2}$

别忘了如果格式字符串中省略了小数点,默认的小数点是6。在

'%.03f'中的0不起任何作用。这相当于'%.3f'。在

至于第二个问题,'%3f'是做什么的,它只是简单地指定了整数的长度,就像在'%3s'中一样。如果你把它放长一点就很清楚了:

>>> '%10f' % 2.3
'  2.300000'
>>> len(_)
10
>>>

这是一个称为字符串格式化字符串插值的功能。它的文档可以找到here。它的工作方式非常类似于C函数^{}的格式字符串。在

相关问题 更多 >

    热门问题