Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Oii, Patricia.
Criar um sistema de validação que força o usuário a repetir uma ação até que ela esteja correta é uma aplicação clássica e muito útil do laço while. Você utilizou uma estratégia de "loop infinito controlado", que é excelente para garantir que os dados de entrada sigam as regras do seu programa.
while True e o breakAo iniciar com while True:, você cria um laço que nunca terminaria sozinho.
break: Ele é a única saída. No seu código, ele só é executado (linha 11) se o usuário passar por todas as validações sem cair nos blocos if ou elif.input da linha 2, sem passar pelo break.len()A função len() é fundamental aqui. Ela conta quantos caracteres existem em uma string (texto).
len(nome) < 5: Garante que o nome não seja curto demais.len(senha) < 8: Garante uma segurança mínima para a senha.if, elif e elseVocê organizou as verificações em uma ordem lógica:
if: Verifica o primeiro critério (nome). Se falhar, o restante do bloco é ignorado e o laço recomeça.elif: Só é testado se o nome estiver correto. É uma segunda barreira.else: É o "porto seguro". Se o código chegar aqui, significa que todas as regras foram obedecidas.No terminal, é possível notar que o código se comporta exatamente como planejado. Ele solicita as informações e, assim que os critérios são atendidos (como na última tentativa visível na imagem), ele imprime a mensagem de sucesso e encerra a execução, liberando o terminal para o próximo comando do sistema.
Como você já domina a contagem de caracteres, uma próxima etapa interessante seria validar se a senha contém números ou caracteres especiais.
Você sente que a estrutura if/elif é mais clara para esse tipo de validação do que usar vários if separados?