当条件满足时,我的 while 循环不会结束

My while loop wont end when condition is met

所以我想做的是制作一个让用户输入密码的程序。如果密码正确,或者如果尝试总数达到 3 次,程序应该停止...但它没有。

password = "password"
guess = ""
tries = 0

while guess != password or tries != 3:
    guess = input("Password: ")
    tries += 1
    print(f"{abs(tries - 3)} Tries Remaining.")

这样写:

password = "password"

tries = 0

while True:
    if tries == 3:
         break
    guess = input("Password: ")
    if guess == password:
         break
       tries += 1
    
    print(f"{abs(tries - 3)} Tries Remaining.")
    
 

您的条件需要是逻辑 AND,而不是逻辑 OR。

while guess != password and tries != 3:

当您使用逻辑 OR 时,如果任一表达式的计算结果为真,while 循环将继续。

因此,对于逻辑与,当 tries == 3 时,第二个表达式的计算结果为假,我们退出循环。

while循环里面猜测的是局部变量,所以全局变量不变。全局猜测始终为 '',因此条件的计算结果始终为真。