如何在Python 2.7中正确使用字符串格式?

时间:2013-04-09 01:16:21

标签: python python-2.7 string-formatting

好的,请耐心等待,我对此完全陌生。这是针对学校的,对于我的作业,确切的语法并不重要,但是就我个人的知识而言,我想更多地了解字符串格式。

每当我使用%f时,默认为2位小数。是否有一个字符串格式,我可以在浮点数上使用,它将显示浮点数实际上具有的小数位数?

例如我的列表包含2.0,2.01,2.001,2.0001,我想使用字符串格式来打印它们。我会使用哪种格式代码,或者如果可能,我如何正确使用%f?

这是在Windows 7上的Python 2.7中(如果重要的话)。

2 个答案:

答案 0 :(得分:0)

如果您将浮点数转换为字符串,那么当您打印它时,它将与您编写时一样显示。

>>> x = str(2.0)
>>> print(x)
2.0
>>> x = str(2.01)
>>> print(x)
2.01
>>> x = str(2.001)
>>> print(x)
2.001
>>> x = str(2.0001)
>>> print(x)
2.0001

(事实上,准确地说,在Python中你实际上并没有转换浮点对象,而是创建一个看起来像它的字符串对象。但这有点超出了你的问题的范围。)

<强>更新

有人发布了一种方法,使用Decimal类从浮点数中删除尾随零,在这里:Removing Trailing Zeros in Python

答案 1 :(得分:0)

%g可能是您正在寻找的内容:

>>> "%g, %g, %g, %g" % (2.1, 2.01, 2.001, 2.0001)
'2.1, 2.01, 2.001, 2.0001'