Язык программирования Python

Как удалить STR из цикла WHILE при выполнении условия в Python?

Я делаю упражнение на 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 = “”. Мы сначала присваиваем значение и проверяем, совпадают ли они. Если нет, вам предлагается ввести значение обратно в пароль. Это выполняется до тех пор, пока пароли не совпадут.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *