1
resposta

Prática - Validação de entrada para login

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

    if len(usuario) < 5:
        print("O nome de usuário deve ter pelo menos 5 caracteres.")
        continue  # volta ao início do loop

    if len(senha) < 8:
        print("A senha deve ter pelo menos 8 caracteres.")
        continue  # volta ao início do loop

    print("Cadastro realizado com sucesso!")
    break  # encerra o loop quando os dados são válidos

Saída:

Digite seu nome de usuário: user
Digite sua senha: 123
O nome de usuário deve ter pelo menos 5 caracteres.
Digite seu nome de usuário: user22
Digite sua senha: 12345
A senha deve ter pelo menos 8 caracteres.
Digite seu nome de usuário: user22
Digite sua senha: 123456789
Cadastro realizado com sucesso!
1 resposta

Olá, Aristóteles! Como vai?

Excelente exemplo prático! Você utilizou um dos padrões mais importantes da programação: o Loop Infinito Controlado (while True). Esse padrão é a base para quase todas as interfaces que precisam garantir que o usuário forneça dados válidos antes de prosseguir.

Gostaria de destacar alguns pontos técnicos fundamentais da sua implementação que demonstram uma boa maturidade em lógica:

1. A Estratégia do while True + break

Diferente de um laço com condição fixa, o while True cria um ciclo que "nunca para" por conta própria. O uso do break no final é o que transforma o seu código em um sistema inteligente: ele só libera a saída do loop quando todas as condições de segurança (nome e senha) são satisfeitas.

2. O papel do continue como Filtro

Você utilizou o continue de forma estratégica. Na programação, chamamos isso de Cláusula de Guarda.

  • Em vez de colocar um if dentro de outro if (o que deixaria o código confuso), o continue "expulsa" o usuário de volta para o início assim que um erro é detectado.
  • Isso mantém o seu código com uma estrutura linear e fácil de ler.

3. Função len() e Validação

O uso da função len() para contar caracteres é o padrão ouro para validações de formulário.

Curiosidade: Em sistemas reais, além do tamanho, costumamos usar métodos como .isalnum() para garantir que o usuário não use caracteres especiais proibidos, ou .islower() para forçar padrões de caixa.


Dica para Evoluir o Código

Se você quiser deixar esse sistema ainda mais profissional, poderia adicionar um limitador de tentativas. Veja como a lógica mudaria levemente:

tentativas = 0
while tentativas < 3:
    # seu código aqui...
    tentativas += 1
    if tentativas == 3:
        print("Muitas tentativas falhas. Tente novamente mais tarde.")

Seu código está limpo, funcional e com uma saída de console que explica muito bem o fluxo para quem está aprendendo. Continue explorando essas validações, pois elas são essenciais no desenvolvimento web e de sistemas!

Espero que possa ter lhe ajudado!