下面的代码为我提供了每20次迭代的0%,而不是我希望它显示的实际百分比。
n=100
for i in range(n):
if i% 20 ==0:
print str(i/n*100) + '%, Progress'结果:
0%, Progress
0%, Progress
etc.....我一定是错过了一些很简单的东西。谢谢。
发布于 2016-10-03 11:37:31
将除法改为i/(float)n*100,以便python解释器将结果的输出格式化为小数点。
发布于 2016-10-03 11:38:48
除法自动舍入到最近的整数。代码中发生的情况是:i= 20 n= 100。
i/n = 20/100,等于0。然后(i/n)*100 = 0*100 = 0。你可以先把i乘以100,然后除以n: i*100/n来解决这个问题。
发布于 2016-10-03 11:47:08
n=100 for i in range(n): print(i); if i% 20 ==0: print str((float(i)/float(n))*100) + '%, Progress'
对于python,i/n根据变量声明是(int)/(int)。所以ti试图给i/n一个整数的答案,它总是0。
https://stackoverflow.com/questions/39830581
复制相似问题