1
resposta

Gerador de senha segura

import random

def gerar_senha():
    maiusculas ="ABCDEFGHIJKLMNOPQRSTUVXWYZ"
    minusculas = "abcdefghijklmnopqrstuvxwyz"
    numeros = "0123456789"
    especiais = "'!@#$%¨&*"

    senha = [
        random.choice(maiusculas),
        random.choice(minusculas),
        random.choice(numeros),
        random.choice(especiais)
    ]
    
    caracteres_exigidos = maiusculas + minusculas + numeros + especiais # geramos os 4 caracteres exigidos.

    senha.extend (random.choices(caracteres_exigidos, k=8)) # junta a senha final com mais 8 caracteres randoms, pois o total de caracteres pedidos no enunciado é 12. O nome da variável k é padrão.
    random.shuffle(senha)
    return ''.join(senha) # join() é um método de string usado para juntar elementos de uma lista em uma única string. O '' determina que não vão ser colocados espaços entre os caracteres da senha.
    # a função acaba aqui, o retorno é a linha acima.

print (f'Senha gerada: {gerar_senha()}')
1 resposta

Olá, Luciane, como vai?

O código atende ao enunciado proposto e cumpre corretamente os requisitos de geração de senha com letras maiúsculas, minúsculas, números e caracteres especiais, garantindo também o total de 12 caracteres e a presença mínima de cada tipo exigido. A lógica está bem aplicada e o uso do embaralhamento no final garante uma boa aleatoriedade na posição dos caracteres.

Parabéns pela solução e por compartilhar seu código no fórum. Continue trazendo suas atividades e dúvidas, o espaço segue à disposição para trocas e aprendizados.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!