1
resposta

Validação de entrada para login

while True:
    nome_usuario = input("Digite seu nome de usuário: ")
    senha = input("Digite sua senha: ")

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

    if len(senha) < 8:
        print("A senha deve ter pelo menos 8 caracteres.")
        continue

    print("Cadastro realizado com sucesso!")
    break
1 resposta

Olá, Juliana. Como vai?

O seu código está excelente e resolve o problema de validação de forma muito eficiente! O uso da estrutura while True em conjunto com os comandos continue e break é o padrão ideal em Python para criar loops de repetição que dependem de validações dinâmicas de dados inseridos pelo usuário.

Analisando a sua lógica, o fluxo funciona perfeitamente: o continue interrompe a iteração atual e volta para o topo do laço caso alguma regra falhe, enquanto o break garante que o programa saia do loop apenas quando todas as condições forem atendidas com sucesso.

Para complementar os seus estudos e agregar ainda mais valor ao seu aprendizado, podemos aplicar duas boas práticas de refatoração bem comuns no mercado de desenvolvimento:

  • **Remover o excesso de continue**: Como as suas validações estão estruturadas com blocos if independentes e mensagens de erro específicas, o uso do continue no primeiro if é obrigatório para evitar que o código verifique a senha antes do usuário corrigir o nome. Porém, podemos estruturar as validações usando elif ou simplesmente deixar o fluxo correr se organizarmos os testes dentro de uma única lógica de validação.
  • Modularização com Funções: Conforme os seus sistemas em Python forem crescendo, misturar a captura de dados (input) com as regras de validação pode dificultar a manutenção do código. Isolar as regras em uma função separada deixa o seu script muito mais limpo e reutilizável.

Veja um exemplo de como reestruturar o seu código aplicando essas boas práticas:

def validar_credenciais(usuario, senha):
    if len(usuario) < 5:
        print("O nome de usuário deve ter pelo menos 5 caracteres.")
        return False
    if len(senha) < 8:
        print("A senha deve ter pelo menos 8 caracteres.")
        return False
    return True

# Loop principal do programa
while True:
    nome_usuario = input("Digite seu nome de usuário: ")
    senha = input("Digite sua senha: ")

    if validar_credenciais(nome_usuario, senha):
        print("Cadastro realizado com sucesso!")
        break

Dica de ouro em Python: Separar a lógica em funções deixa o seu laço while responsável apenas pelo fluxo da tela (perguntar e parar), enquanto a função foca exclusivamente nas regras de negócio. Isso tornará a criação de testes automatizados muito mais simples no futuro!

Parabéns pela excelente implementação do laço de repetição e pela organização do código!

Espero que possa ter lhe ajudado!