Как получить «Правильный вход в лабиринт», не получив «извините, пожалуйста, повторите попытку»

#python #python-3.x

Вопрос:

 password = "nothing"  
tries = 0

while password != "secret":
    tries = tries   1
    password = input("What is the secret password? ")
    print("sorry, please try again. ")
    if tries == 3:  
        print("You have been locked out")
        exit()


print("Correct! Enter the maze!")
 

когда я пишу правильный пароль, я получаю это в ответ

Что такое секретный пароль? секрет.

извините, пожалуйста, попробуйте еще раз. Правильно! Войдите в лабиринт

Комментарии:

1. Есть несколько проблем с вашим кодом. Оператор print("sorry, please try again. ") всегда выполняется. Чтобы выйти из while цикла, когда tries == 3 вы должны использовать break вместо exit() .

Ответ №1:

У Python нет do-while, поэтому один из способов сделать подобное —

 password = ""  
tries = 0

while True:
    password = input("What is the secret password? ")
    if password == "secret":
        break
    print("sorry, please try again. ")
    tries  = 1
    if tries == 3:  
        print("You have been locked out")
        exit()
    
print("Correct! Enter the maze!")
 

Ответ №2:

Вы можете использовать этот код:

 password = "nothing"  
tries = 0

while password != "secret":
    tries = tries   1
    password = input("What is the secret password? ")
    if password == "secret":
        break
    else:
        print("sorry, please try again. ")
        if tries == 3:  
            print("You have been locked out")
            exit()


print("Correct! Enter the maze!")
 

Если вы не хотите, чтобы пароль был виден, вы можете использовать следующую библиотеку
getpass()

пример:

 import getpass


p = getpass.getpass(prompt='What is the secret password? ')
  
if p.lower() == 'secret':
    print('Correct! Enter the maze!')
else:
    print('sorry, please try again.')
 

Комментарии:

1. !! СПАСИБО, мне нужно изучить код и посмотреть, где я ошибся!!! 😀