Oi, Eduardo.
O uso do while True é a forma mais comum de criar sistemas de validação que precisam persistir até que o usuário forneça as informações corretas. Ao combinar esse laço com operadores lógicos como o and, você garante que múltiplos requisitos de segurança sejam atendidos simultaneamente.
O seu código está logicamente correto. Uma sugestão para deixá-lo mais amigável é informar exatamente o que está errado. Quando o usuário falha, ele pode não saber se foi o nome ou a senha que não atingiu o tamanho mínimo.
Você poderia expandir a lógica assim:
while True:
usuario = input("Digite o nome de usuário: ")
senha = input("Digite a senha: ")
if len(usuario) < 5:
print("Erro: O usuário deve ter pelo menos 5 caracteres.")
elif len(senha) < 8:
print("Erro: A senha deve ter pelo menos 8 caracteres.")
else:
print("Cadastro realizado com sucesso!")
break
Dessa forma, o programa continua rodando, mas fornece orientações específicas para ajudar o usuário a concluir o cadastro.
Esse tipo de estrutura é a base para quase todos os sistemas de autenticação que usamos na internet. Já pensou em como você adicionaria uma verificação para impedir que a senha seja igual ao nome de usuário?
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!