import random
import string
MIN_PASSWORD_LENGTH = 9
def generate_password(length):
chars = string.ascii_letters + string.digits
while True:
password = ''.join(random.choice(chars) for _ in range(length))
if any(c.isupper() for c in password) and any(c.isdigit() for c in password):
return password
def check_password(password):
errors = []
if len(password) < MIN_PASSWORD_LENGTH:
errors.append(
f"Длина должна быть не менее {MIN_PASSWORD_LENGTH} символов."
)
if not any(c.isupper() for c in password):
errors.append("Нет заглавной буквы.")
if not any(c.isdigit() for c in password):
errors.append("Нет цифры.")
invalid = [c for c in password if not c.isalnum()]
if invalid:
errors.append(
"Есть недопустимые символы (разрешены только буквы и цифры)."
)
return errors
while True:
print("\n=== Меню ===")
print("1 - Сгенерировать пароль")
print("2 - Проверить пароль")
print("3 - Выход")
choice = input("Выберите действие: ")
if choice == "1":
length = int(input("Введите длину пароля (не менее 9): "))
if length < 9:
print("Минимальная длина пароля — 9 символов.")
else:
print("Пароль:", generate_password(length))
elif choice == "2":
password = input("Введите пароль: ")
errors = check_password(password)
if errors:
print("\nПароль не подходит:")
for error in errors:
print("-", error)
else:
print("\nПароль соответствует требованиям.")
elif choice == "3":
print("Программа завершена.")
break
else:
print("Неверный выбор.")