Контекст
При смене пароля сервис показывает список того, что не так, а не просто «слабый пароль». Пустой список означает, что пароль прошёл проверку. Такой подход помогает пользователю исправить конкретные проблемы, а не угадывать требования.
Задача
Реализуйте функцию password_issues(password), которая возвращает список кодов проблем пароля. Если пароль удовлетворяет всем правилам — верните пустой список.
Правила
- Верните список кодов проблем В ФИКСИРОВАННОМ порядке проверок: ‘too_short’, ‘no_digit’, ‘no_upper’, ‘no_lower’.
- ‘too_short’ — если длина меньше 8.
- ‘no_digit’ — если нет ни одной цифры.
- ‘no_upper’ — если нет ни одной заглавной буквы.
- ‘no_lower’ — если нет ни одной строчной буквы.
- Если пароль удовлетворяет всем правилам — верните пустой список.
- Порядок кодов в списке всегда соответствует порядку правил выше.
Примеры
password_issues("Secret123")
# []
password_issues("short1A")
# ["too_short"]
password_issues("alllowercase")
# ["no_digit", "no_upper"]
Где это в системе
Коды из списка используются на фронте для показа подсказок рядом с полем пароля. Порядок кодов фиксирован, чтобы подсказки отображались в предсказуемом порядке независимо от того, какие именно правила нарушены.