1
resposta

Validação de entrada para login

while True:
    print("--- NOVO CADASTRO ---")
    usuario = input("Digite o nome de usuário (mínimo 5 caracteres): ")
    senha = input("Digite a senha (mínimo 8 caracteres): ")
    if len(usuario) >= 5 and len(senha) >= 8:
        print("\nCadastro realizado com sucesso!")
        break
    else:
        print("\n Erro: Usuário ou senha não atendem aos requisitos. Tente novamente.\n")

--- NOVO CADASTRO ---
Digite o nome de usuário (mínimo 5 caracteres): User
Digite a senha (mínimo 8 caracteres): 12345678

Erro: Usuário ou senha não atendem aos requisitos. Tente novamente.

--- NOVO CADASTRO ---
Digite o nome de usuário (mínimo 5 caracteres): Marcelo
Digite a senha (mínimo 8 caracteres): 123

Erro: Usuário ou senha não atendem aos requisitos. Tente novamente.

--- NOVO CADASTRO ---
Digite o nome de usuário (mínimo 5 caracteres): Marcelo
Digite a senha (mínimo 8 caracteres): 12345678

Cadastro realizado com sucesso!

1 resposta

Oi, Marcelo, como vai?

O código está correto e o uso de while True combinado com break é a abordagem natural para esse tipo de situação, onde o número de tentativas não é conhecido de antemão. A mensagem de erro também é clara e orienta o usuário a tentar novamente.

Uma dica para tornar o feedback mais preciso: a mensagem de erro atual informa apenas que "usuário ou senha não atendem aos requisitos", sem especificar qual dos dois falhou. Pode ser mais útil indicar exatamente o que precisa ser corrigido, como "nome de usuário muito curto" ou "senha muito curta", de forma separada. Isso pode ser feito com condicionais dentro do else, verificando cada campo individualmente.

Pensando nisso, como você limitaria o número de tentativas de cadastro, encerrando o programa com uma mensagem de bloqueio caso o usuário erre mais de três vezes seguidas?

Parabéns pelo exercício e obrigado por compartilhar. O fórum está à disposição sempre que precisar.

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