Python中的数字格式(十进制左边的打印数)

时间:2015-01-09 08:05:28

标签: python-2.7 string-formatting number-formatting

我正在尝试使用以下代码打印整数(小数点左边的数字):

print "Completed in %g".format(str(time_difference / 60), 1.0) + " minutes, %g".format(time_difference % 60, 1.0) + " seconds."

相反,我得到:

Completed in %g minutes, %g seconds.

2 个答案:

答案 0 :(得分:2)

您正在混合打印字符串的方法。要使用format,请参阅文档here。您必须使用{}。例如:

>>> print "Completed in {0:g} minutes, {1} seconds".format(time_difference % 60, 1.0)
Completed in 40 minutes, 1.0 seconds

要使用旧表示法,您必须使用%进行格式化。见string formatting

>>> print "Completed in %g minutes, %g seconds" % (time_difference % 60, 1.0)
Completed in 40 minutes, 1 seconds

答案 1 :(得分:1)

试试这个:

print "Completed in {} minutes, {} seconds.".format(int(time_difference / 60), int(time_difference % 60))

详细了解"format" statement in the Python documentation

另外,避免使用" +"连接字符串。 join list of strings通常效率更高。