算术运算的Python问题

时间:2018-08-19 14:03:22

标签: python python-2.7

我有一行Python代码无法正常工作(至少据我所知)。以下是代码行:

print 'progress: {}%'.format((i/len(e_numbers))*100)

i的值从0开始,一直到e_numbers的长度,即list,而e_numbers的长度大约为{ {1}}。但是代码始终显示17000

知道为什么吗?

1 个答案:

答案 0 :(得分:2)

在Python 2中,默认情况下,使用// @run-at document-start除以两个整数将执行整数除法,将结果四舍五入为最接近的整数值。因此,只要/在0到i之间,len(e_numbers)就会为0。有两种可能的解决方案:

  1. 在除以i/len(e_numbers)

  2. 之前将一个或两个操作数转换为浮点数
  3. float(i)/len(e_numbers)放在文件顶部,以便from __future__ import division总是产生浮点数。