当条件满足时,我的 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循环里面猜测的是局部变量,所以全局变量不变。全局猜测始终为 '',因此条件的计算结果始终为真。
所以我想做的是制作一个让用户输入密码的程序。如果密码正确,或者如果尝试总数达到 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循环里面猜测的是局部变量,所以全局变量不变。全局猜测始终为 '',因此条件的计算结果始终为真。