Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] #13 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. Tente novamente.")
    continue
if len(senha) < 8:
    print("A senha deve ter pelo menos 8 caracteres. Tente novamente.")
    continue

print("Cadastro realizado com sucesso!")    
break


Ao validar, percebi que se eu digitar uma senha com menos de 8 carateres, e ele retornar pedindo para digitar usuario novamente e volta a validar tudo.

Como posso corrigir o código, para que se eu digitar a senha invalida, ele nao volte e solicite para digitar usuário e senha novamente, solicite apenas a correção da senha?

1 resposta
solução!

Oi, Thiconsultec! Como vai?

Você estruturou bem a validação com while True e uso de continue, isso mostra um bom controle de fluxo. O ponto é que, quando a senha falha, o continue reinicia todo o laço, por isso o usuário é solicitado novamente. Uma forma de resolver isso é separar a validação em dois laços, um para usuário e outro para senha.

Uma dica interessante para o futuro é organizar validações em etapas separadas, isso deixa o fluxo mais claro e evita retrabalho. Veja este exemplo:


while True:
    usuario = input("Digite o usuario: ")
    if len(usuario) >= 5:
        break
    print("Usuario precisa ter pelo menos 5 caracteres")

while True:
    senha = input("Digite a senha: ")
    if len(senha) >= 8:
        break
    print("Senha precisa ter pelo menos 8 caracteres")

print("Cadastro realizado com sucesso")

Nesse código, cada etapa valida apenas o que precisa, evitando repetir o processo inteiro.

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