所以我看过这里的帖子: how to show Percentage in python并使用了解决方案。
S = 'ftp'
"{0:.0f}%".format(S.count('f') / 9 * 100)
所需的输出 11%,但是当我使用指定的格式运行代码时,我得到“0%”而不是我想要的11%。任何向正确方向的推动都会非常感激。
答案 0 :(得分:1)
问题不在格式语句中,只是算术 - 你的整数除法使得S.count('f')/ 9返回0.将你的9改为9.0应该有效。
答案 1 :(得分:1)
如果要显示百分比,则应直接使用百分比格式化程序:
>>> '{:.0%}'.format(S.count('f') / 9)
'11%'
正如其他人已经注意到的,如果两个参数都是整数,Python 2将使用整数除法,所以你可以改为使常量变为浮点数:
>>> '{:.0%}'.format(S.count('f') / 9.)
'11%'
答案 2 :(得分:0)
它适用于Python 3但是对于Python 2,你需要至少一个浮点数来获得/
的浮点结果你可以添加。 (点)到9有浮点数。
S = 'ftp'
"{0:.0f}%".format(S.count('f') / 9. * 100)
答案 3 :(得分:0)
这是因为(在Python 2中)你使用整数除法,其中3 / 9
给你零。
您可以切换到浮点除法:
"{0:.0f}%".format(S.count('f') / 9.0 * 100)
你会看到为什么它在以下成绩单中起作用:
>>> 3/9
0
>>> 3/9.0
0.3333333333333333
或者,您可以重新安排操作,以便先倍增:
"{0:.0f}%".format(S.count('f') * 100 / 9)