这是我第一次在StackOverflow上提问!
我正试图写一段代码,用python中的for和while循环来知道在10000之前,数字的累加和是多少自然数。
a for loop,
accum_sum = 0
for n in range(10000):
if accum_sum > 10000:
print(n-1)
break
它给了我140
我想知道如何编写一个代码,通过使用while循环来获得相同的东西(140(。。。这是我尝试过的,但不知怎么的,它给了我一个不同的答案。有人能帮我吗?我觉得我迷失了
accum_sum = 0
while accum_sum < 10000:
n += 1
accum_sum = accum_sum + n
if accum_sum > 10000:
print(n-1)
break
谢谢!
在您的代码片段中:
- 正如@conton7所指出的,在的中,您永远不会将num添加到accum_sum,因此它将始终为零
- n不是在之前定义的,而,因此您不能将其递增1,并且将抛出NameError
更改这些内容并添加适当的缩进应该会得到如下结果。
用于:
sum = 0
for num in range(0,10000):
sum += num
if num > 10000:
print('This is the number you want ', num-1)
break
使用while:
sum = 0
num = 0
while sum < 10000:
num += 1
sum += num
print('This is the number you want ', num-1)
这两个都打印了140。
参考文献:
- 何时使用while循环而不是for循环
- 文件
- 更多文档