【问题标题】:My while loop wont end when condition is met满足条件时,我的 while 循环不会结束
【发布时间】:2021-11-25 08:45:04
【问题描述】:

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

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

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

【问题讨论】:

    标签: while-loop conditional-statements


    【解决方案1】:

    这样写:

    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.")
        
     
    

    【讨论】:

      【解决方案2】:

      您的条件必须是逻辑 AND,而不是逻辑 OR。

      while guess != password and tries != 3:
      

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

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

      【讨论】:

        【解决方案3】:

        while循环里面猜测是一个局部变量,所以全局变量保持不变。全局猜测始终为 '',因此条件始终为真。

        【讨论】:

          猜你喜欢
          • 2012-02-21
          • 2019-01-29
          • 2013-11-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-02
          相关资源
          最近更新 更多