如何在 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。
参考文献:
- When to use while loop rather than for loop
- Documentation
- More Documentation
这是我第一次在 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。
参考文献:
- When to use while loop rather than for loop
- Documentation
- More Documentation