【发布时间】:2021-11-20 02:08:17
【问题描述】:
谁能帮我弄清楚为什么这个循环是无限的?我所在的班级会根据最后两行自动为我输入变量。它通过了数字 2 和 4 的测试。但是,还有另一个输入,我看不到,它保持它作为无限循环运行。我无法弄清楚这段代码中允许无限循环的差距在哪里。有什么建议吗?
def shampoo_instructions(user_cycles):
N = 1
while N <= user_cycles:
if N < 1:
print('Too few')
elif N > 4:
print('Too many')
else:
print(N,': Lather and rinse.')
N = N + 1
print('Done.')
user_cycles = int(input())
shampoo_instructions(user_cycles)
【问题讨论】:
-
缩进都搞砸了。据我所知(如果我对如何修复缩进进行了一些猜测),如果您给它提供除 1 以外的任何值,该函数将立即退出,这让我认为这不是您实际运行的代码。
-
欢迎来到 SO。请修正你的缩进。
-
我添加了更新的缩进。对不起。 @ewong
-
我添加了更新的缩进。对不起。 @Samwise
-
用您自己的话来说,
N = N + 1的发生必须满足哪些条件?用您自己的话来说,如果那没有发生,那么N <= user_cycles的结果为什么要改变呢?如果 that 没有发生,为什么循环会结束?
标签: python loops while-loop infinite