【问题标题】:How to make for and while loops in Python to get the same answer?如何在 Python 中进行 for 和 while 循环以获得相同的答案?
【发布时间】:2022-02-24 16:59:06
【问题描述】:

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

我正在尝试编写一个代码,以使用 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

谢谢!

【问题讨论】:

  • 我想你忘了发布你的一些代码。你的第一个 sn-p 永远不会添加到 accum_sum,所以它总是为零
  • 请提供足够的代码,以便其他人更好地理解或重现问题。
  • 您的评论和@hwhap 的回答帮助了我在哪里犯了错误——我修复了 sn-p 部分,最后它按照我想要的方式解决了。非常感谢!

标签: python loops for-loop while-loop


【解决方案1】:

在您的代码 sn-ps 中:

  • 正如@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

使用while:

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

这两个都打印 140。

参考资料:

【讨论】:

  • 你是我的救星!谢谢你帮我找到我错过的地方。我将确保定义变量以开始编写代码:)
猜你喜欢
  • 2019-06-30
  • 1970-01-01
  • 1970-01-01
  • 2022-06-28
  • 2022-12-18
  • 1970-01-01
  • 2018-04-20
  • 2020-03-01
  • 2021-09-27
相关资源
最近更新 更多