打印语句中的冒号和点

The colon and dot in a print statement

我的问题是打印语句中的 .: 是什么?例如:

print(f'The estimated revenue for a 0 film is around ${revenue_estimate:.10}.')

这个returns:

The estimated revenue for a 0 film is around 0000000.0.

但没有 :. 结果是完全一样的!

我搜索了一下,什么也没找到...

我相信这个符号指定了输入的类型。在这种情况下,它是一个 float 削减到 10 位小数,所以写作

revenue_estimate = 4
print(f'The estimated revenue for a 0 film is around ${revenue_estimate:.10}.')

将产生以下结果:

ValueError                                Traceback (most recent call last)
<ipython-input-61-865ae2076242> in <module>()
      1 revenue_estimate = 4
----> 2 print(f'The estimated revenue for a 0 film is around ${revenue_estimate:.10}.')

ValueError: Precision not allowed in integer format specifier

并且 4.01234567894 将被削减为 4.0123456789

这是你的答案:

https://blog.teclado.com/python-formatting-numbers-for-printing/

我也在处理同样的问题,我也很困惑。

在冒号点之后,指定要打印的有效数字位数。由于您的答案 600000000.0 恰好有 10 位有效数字,因此打印了整个内容。如果您将代码更改为: print(f'The estimated revenue for a 0 film is around ${revenue_estimate:.9}.'),您会看到指数表示法的输出 6e+08