Olá, Matheus! Como vai?
Parabéns pela resolução da atividade!
Observei que você explorou o uso da biblioteca string para reunir diferentes tipos de caracteres com Python, utilizou muito bem o random.choice para garantir a presença de cada categoria de símbolo e ainda compreendeu a importância do random.shuffle para embaralhar e tornar a senha mais segura.
Uma dica interessante para o futuro é permitir que o usuário defina o tamanho da senha desejada. Assim:
def gerador_de_senha(tamanho):
caracteres = string.ascii_letters + string.digits + string.punctuation
maiuscula = random.choice(string.ascii_uppercase)
minuscula = random.choice(string.ascii_lowercase)
numero = random.choice(string.digits)
especial = random.choice(string.punctuation)
garantidos = [maiuscula, minuscula, numero, especial]
restantes = random.choices(caracteres, k=tamanho - 4)
senha_lista = garantidos + restantes
random.shuffle(senha_lista)
return "".join(senha_lista)
print("Senha gerada:", gerador_de_senha(7))
Isso faz o programa gerar senhas com comprimento variável, conforme a necessidade.
Fico à disposição! E se precisar, conte sempre com o apoio do fórum.
Abraço e bons estudos!
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!