python: 在表格中仅显示两位小数

0 投票
2 回答
7895 浏览
提问于 2025-04-17 13:51

我写了一段代码,用来分析一些文本文件,并显示某些单词出现的频率。

输出结果如下:

Counting words by tag
---------------------

modals
per 1000 words                    can  could  shall should   will  would
austen-emma.txt                1.480000 4.350000 1.100000 1.920000 2.900000 4.260000
austen-persuasion.txt          1.090000 4.590000 0.560000 1.920000 1.650000 3.620000
austen-sense.txt               1.500000 4.060000 0.870000 1.640000 2.500000 3.600000
chesterton-ball.txt            1.460000 1.210000 0.510000 0.770000 2.040000 1.440000
chesterton-brown.txt           1.500000 1.990000 0.350000 0.650000 1.290000 1.570000
chesterton-thursday.txt        1.760000 2.180000 0.710000 0.780000 1.570000 1.730000

你可以看到,数字被四舍五入到小数点后两位,但我的程序还是打印出了一些多余的零。

这和格式设置有关,具体在以下代码行:

     cell = round(float(cfdist[fileid][w])*1000/number_of_words[fileid],2)
     print '%6f' % (cell),  

有没有人能帮我改进这一行打印 '%6f' % (cell),让它不显示结尾的零呢?

谢谢!

2 个回答

1

num = 12.3456

new_val = '%.2f' % float(num)

print float(new_val)

12.34

这里的代码首先定义了一个数字,叫做num,它的值是12.3456。

接着,new_val这个变量被用来存储一个格式化后的数字。'%.2f'的意思是把num这个数字转换成浮点数,并且保留两位小数。

最后,代码打印出new_val的值,结果是12.34。

3

请查看Python字符串格式化的相关文档。你遇到的问题是"%6f"这个写法。可以试试下面的代码:

print "%.2f" % cell

撰写回答