Ошибка в выполнении задачи из курса по 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
→ Ссылка