1
resposta

Minha resposta.

Adicionei ao codigo uma coisa a mais, a senha do usuário precisa ter no minimo um caracter especial, dexei os criterio da senha evidenciado para que a pessoa que ira fazer o login possa ter o entendimento do que a senha precisa ter.

while True:
    print('\n=== CADASTRO ===')
    print('Regras:')
    print('- Nome de usuário: mínimo 5 caracteres')
    print('- Senha: mínimo 8 caracteres')
    print('- Senha deve conter pelo menos 1 caractere especial (!@#$...)')

    nome_usuario = input('\nDigite seu nome de usuário: ')
    senha_usuario = input('Digite sua senha: ')
    especiais = "!@#$%^&*()_+-=[]{}|;:',.<>?/"

    if len(nome_usuario) < 5:
        print('❌ O nome de usuário deve ter pelo menos 5 caracteres')
        continue

    if len(senha_usuario) < 8:
        print('❌ A senha deve ter pelo menos 8 caracteres')
        continue

    if not any(caractere in especiais for caractere in senha_usuario):
        print('❌ A senha deve conter pelo menos 1 caractere especial')
        continue

    print('✅ Cadastro realizado com sucesso!')
#     break
1 resposta

Oi, Jhonatan! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei de como você deixou as regras visíveis e reforçou a validação com any() para caracteres especiais, isso melhora bastante a experiência de quem usa o sistema e mostra cuidado com segurança.

Uma dica interessante para o futuro é usar expressões regulares para validar vários critérios de uma vez, o que pode deixar o código mais compacto e flexível.


import re

senha = input('Digite a senha: ')

padrao = r'^(?=.*[!@#$%^&*]).{8,}$'

if re.match(padrao, senha):
    print('senha valida')
else:
    print('senha invalida')

Esse código verifica se a senha tem pelo menos um caractere especial e no mínimo 8 caracteres usando regex, deixando a validação mais direta.

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