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

How to make for and while loops in Python to get the same answer?

这是我第一次在 Whosebug 上提问!

我正在尝试编写一个代码,以使用 python 中的 for 和 while 循环来了解在什么自然数时,数字的累加和正好在 10,000 之前

一个for循环,

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

谢谢!

在您的代码片段中:

  • 正如 @canton7 指出的那样,在 for 中,您永远不会将 num 添加到 accum_sum,因此它将始终为零
  • n 未在 while 之前定义,因此您不能将其递增 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

使用时间:

   sum = 0
   num = 0
   while sum < 10000:
        num += 1
        sum += num
   print('This is the number you want ', num-1)

这两个都打印 140。

参考文献: