Перевірка пароля на правила

Напишіть функцію validate_password(password: str) -> bool, яка перевіряє, чи введений пароль відповідає всім заданим вимогам безпеки.

Вимоги до паролю (правила):

  1. Містить хоча б одну велику літеру (A-Z).
  2. Містить хоча б одну цифру (0-9).
  3. Має довжину не менше 8 символів.
  4. Містить хоча б один спеціальний символ з набору !@#$%^&*().
  5. Не містить пробілів.

Функція повинна повертати True, якщо пароль проходить усі перевірки, інакше — False.

Приклад:

>>> validate_password("StrongPass1!")
True
>>> validate_password("weakpass")
False
>>> validate_password("Short7!")
False
>>> validate_password("With Space1!")
False
>>> validate_password("NoSpecialChar1")
False

Підказки до реалізації

  • Для кожного правила створіть окрему функцію, що приймає password: str і повертає bool. Функції повинні мати назви:
    • has_uppercase
    • has_digit
    • is_long_enough
    • has_special_char
    • no_spaces
  • Створіть список правил типу list[Callable[[str], bool]].
  • Для перевірки всіх правил використайте вбудовану функцію all(...).
  • Для правил "містить хоча б одну" можна використовувати вбудовану функцію any(...).
  • Можна використовувати методи str.isupper(), str.isdigit().