首页 > 解决方案 > python:如果条件不满足while循环

问题描述

我正在尝试编写有关输入密码的代码。用户有三次尝试输入密码。如果新的尝试是正确的或用户总共尝试了 3 次,则循环应该结束。但是,我的代码无法运行输入正确密码的部分。那么,我该如何摆脱破解?请帮我!

passwd='pass1'

enter=input('Please enter the password:')

counter = 0

while counter in range(3):

if counter==0:

  if enter==passwd:

     print('Access granted')

     break

  elif enter!=passwd:

     result=input('That is incorrect, please try again:')

     counter=counter+1

elif counter==1:

  if enter==passwd:

     print('Access granted')

     break
  elif enter!=passwd:

     result=input('That is incorrect, please try again:')

     counter=counter+1

elif counter==2:

  if enter==passwd:

    print('Access granted')

    break

 elif enter!=passwd:

    print('Access denied')

    counter=counter+1

标签: python-3.x

解决方案


考虑基于所需结果而不是计数器循环:

counter = 1
passwd  = 'pass1'
enter   = ''

while enter != passwd:
    enter = input('Please enter the password:')
    if (enter != passwd):
        counter += 1
        if (counter > 3):
            print("Access denied")
            break
        else:
            print('That is incorrect, please try again:')
    else:
        print("Access is granted")

我试图保留您的相同消息,这使代码更加复杂。显然,它可以通过简化所需的步骤来进一步减少。


推荐阅读