为什么我的for循环陷入无限循环?

时间:2019-02-17 17:24:32

标签: python loops for-loop

我是python的新手,正在从事小型项目:

我正在尝试编写一个程序来计算从1到一百万的整数的数字总和。

我的代码陷入无限循环:

x=0
for num in range(1,1000001):
    x=x+1/num
    print(round(x,5))

我想要的输出是:

  

从1到100万的数字总和为27,000,001。

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

您可以尝试将digits转换为string,然后再转换回int,然后计算总数

>>> tot = 0
>>> for i in range(1,1000001): # use `xrange` if python2
...   tot += sum(int(y) for y in str(i))
...
>>> tot
27000001

或者@Jean-FrançoisFabre建议的单线纸,

>>> sum(sum(map(int,str(i))) for i in range(1000001))
27000001