Ошибка в выполнении задачи из курса по Python разработке
Пользователь придумывает пароль и вводит его с клавиатуры. Пароль должен состоять более чем из 8 символов, содержать как минимум по одной прописной и заглавной букве.
Пробовала использовать цикл while, условие, но максимум, чего добилась - проверка пароля на кол-во символов.
password = input("Create a password: \n")
while len(password) <= 8 or password.islower() < 1 or password.isupper() < 1:
print("Your password isn't acceptable. Create a new password: \n")
else:
print("You created a safe password")
Понимаю, что вопрос банальный, а код написан с глупыми ошибками. Питон изучаю совсем недолго, а наставник на курсе не может нормально объяснить.
Ответы (1 шт):
На самом деле ошибки не настолько уж глупые, а идея была верная:-)
Но вам нужно, чтобы password.islower() или password.isupper() выдавали True, для невыполнения условия безопасного пароля. Т.е. вам надо не <1 было ставить, а ==1 (эквивалент True). А по правилам языка можно для True и ничего не ставить (см. ниже).
И цикл не очень удачно был организован, зациклится при неправильном пароле.
Ниже более классическая организация (работающая). Или ваш вариант с добавленным password = input() тоже подойдет.
while True:
password = input("Create a password: \n")
if len(password) <= 8 or password.islower() or password.isupper():
print("Your password isn't acceptable.")
else:
print("You created a safe password")
break