首页 > 解决方案 > while 循环未在更改测试条件时终止

问题描述

案例 1 在第一个循环上终止,这是有道理的,但是案例 2 没有,即使在输入 5 之后也是如此?为什么不?我为排除故障所做的工作:最初我怀疑它可能与在每个循环上创建的不同“x”变量有关,也许?但这似乎没有意义,因为如果每次迭代都创建了不同的变量,我们将永远无法更新计数。范围/命名空间?不应该与案例1不同,据我所知不同的参考?我打印了这两种情况的 id(),新分配的“x”变量存储在不同的位置。因此,这似乎与问题无关。

有什么帮助吗?

情况1

x = 8
print('initial x', x, id(x))
while (x != 5):
    x = 5
    print('final_x', x, id(x))

案例2

x = 8
print('initial x', x, id(x))
while (x != 5):
    x = input("Please enter the number 5: ")
    print('final_x', x, id(x))

标签: pythoninputwhile-loop

解决方案


推荐阅读