如何在Python中进行for和while循环以获得相同的答案



这是我第一次在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循环
  • 文件
  • 更多文档

最新更新