Я делаю упражнение на Python, в котором пользователь создает пароль, и при повторном вводе пароля, если они совпадают, цикл заканчивается сообщением “Верный пароль”, в противном случае цикл продолжается с сообщением “Пароль неверен” “Введите свой пароль”, пока они не совпадут.
def password():
key = str(input("Введите пароль: "))
password = ""
while password != key:
password = str(input("Введите пароль: "))
print(" ")
print("Неверный пароль")
print("Верный пароль")
Code language: PHP (php)
Когда password = key, на выходе получается
Неверный пароль Верный пароль
Я не знаю, как удалить “Неверный пароль”, когда условие выполнено.
Ответ.
Решение 1 :
def check_password():
key = input("Введите пароль : ")
password = input("Введите пароль: ")
if (password != key):
print("Неверный пароль\n")
check_password()
else:
print("Верный пароль")
check_password()
Code language: PHP (php)
В функции check_password() мы выполняем и сохраняем в переменных key и password два ключа.
После этого в операторе if мы говорим, что если пароль не равен ключу, то мы возвращаем сообщение об ошибке и снова выполняем функцию check_password(), тем самым выполняя рекурсивное действие (функция вызывает себя снова).
В условии else мы пишем правильный пароль, потому что если функция if не выполняется, это означает, что пароли совпадают.
Далее я добавлю еще одну функцию с имеющимся у вас кодом, чтобы у вас было два возможных способа сделать это.
Решение 2 :
def check_password():
key = input("Введите пароль: ")
password = str(input("Введите парольa: "))
while password != key:
password = input("\nНеверный пароль, введите пароль еще раз: ")
print("Верный пароль")
check_password()
Code language: PHP (php)
Вначале не нужно запускать переменную password вне while, как это было в случае с password = “”. Мы сначала присваиваем значение и проверяем, совпадают ли они. Если нет, вам предлагается ввести значение обратно в пароль. Это выполняется до тех пор, пока пароли не совпадут.