1
resposta

[Sugestão] Cadastro realizado com sucesso!

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Alex. Como vai?

O seu código no PyCharm ficou espetacular! Você estruturou um sistema de validação de cadastro super completo e muito próximo do que grandes sistemas de tecnologia usam nos bastidores.

O uso do loop infinito while True foi a escolha perfeita para este cenário, pois garante que o programa continue rodando e insistindo na digitação correta até que o usuário cumpra todas as exigências do formulário. A lógica do break para encerrar o programa após o sucesso também foi aplicada de forma impecável, como podemos ver nos testes do console.

Analisando a estrutura das suas condições (if/elif/else), há um comportamento lógico muito interessante que vale a pena observar e que serve como uma excelente oportunidade de melhoria para a experiência do usuário (UX).

No modelo atual, você utilizou o encadeamento com elif:

if len(usuario) < 5:
    # ...
elif len(senha) < 8:
    # ...

Como o elif só é testado se o if de cima for falso, o seu programa avalia apenas um erro por vez. Repare na sua primeira tentativa no console: você digitou o usuário com 4 letras (Alex) e a senha com 6 caracteres (Ahah82). Ambos estavam incorretos, mas o sistema alertou apenas sobre o usuário. O usuário só descobriu que a senha também estava curta na rodada seguinte.

Para tornar o seu sistema ainda mais inteligente e amigável, nós podemos transformar esses testes em condições independentes usando múltiplos blocos if isolados e uma variável de controle (uma flag booleana). Dessa forma, se o usuário errar os dois campos ao mesmo tempo, o programa lista todos os erros de uma vez só na tela!

Veja esta sugestão de como aprimorar a lógica do seu código:

while True:
    # Solicita as entradas do usuário
    usuario = input("Digite seu nome de usuário: ")
    senha = input("Digite sua senha: ")

    # Criamos uma variável para controlar se encontramos algum erro nesta rodada
    dados_validos = True

    # Validação 1: Verifica o tamanho do usuário
    if len(usuario) < 5:
        print("❌ O nome de usuário deve ter pelo menos 5 caracteres.")
        dados_validos = False

    # Validação 2: Verifica o tamanho da senha (com IF independente, para testar mesmo se o usuário falhar)
    if len(senha) < 8:
        print("❌ A senha deve ter pelo menos 8 caracteres.")
        dados_validos = False

    # Se após passarmos pelos testes a nossa variável continuar True, tudo está correto!
    if dados_validos:
        print("\n✅ Cadastro realizado com sucesso!")
        break  # Encerrará o laço while
    
    print("-" * 40) # Linha divisória para organizar as tentativas no console

O que muda com essa estrutura?

Se o usuário digitar um nome curto e uma senha curta logo na primeira tentativa, o console exibirá os dois alertas juntos. Isso economiza o tempo do usuário e deixa o fluxo do seu software muito mais profissional e fluido.

Parabéns pela fantástica sequência de códigos criados ao longo do curso e pelo excelente capricho nos comentários e organização do seu projeto!

Espero que possa ter lhe ajudado!