Solucionado (ver solução)

Importante

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!

Solucionado
(ver solução)
1
resposta

Validação de entrada para login | Praticando Python: laços for e while

# Sistema de Cadastro com Validação de Entrada
# Validação de nome de usuário e senha usando laço while

def validar_cadastro():
    """
    Função que valida o cadastro do usuário.
    Continua solicitando entrada até que as condições sejam atendidas.
    """
    # Inicializa as variáveis de controle
    nome_valido = False
    senha_valida = False
    
    # Laço que continua até que ambas as validações sejam atendidas
    while not (nome_valido and senha_valida):
        # Solicita o nome de usuário
        nome_usuario = input("Digite um nome de usuário (mínimo 5 caracteres): ")
        
        # Valida o nome de usuário
        if len(nome_usuario) >= 5:
            nome_valido = True
            print("✓ Nome de usuário válido!\n")
        else:
            nome_valido = False
            print(f"✗ Nome de usuário inválido! Você digitou {len(nome_usuario)} caracteres (mínimo 5).\n")
        
        # Solicita a senha (apenas se o nome for válido para melhor UX)
        if nome_valido:
            senha = input("Digite uma senha (mínimo 8 caracteres): ")
            
            # Valida a senha
            if len(senha) >= 8:
                senha_valida = True
                print("✓ Senha válida!\n")
            else:
                senha_valida = False
                print(f"✗ Senha inválida! Você digitou {len(senha)} caracteres (mínimo 8).\n")
        
        # Se algum dado for inválido, mostra mensagem de tentativa novamente
        if not (nome_valido and senha_valida):
            print("Por favor, tente novamente.\n")
    
    # Mensagem de sucesso
    print("=" * 40)
    print("Cadastro realizado com sucesso!")
    print("=" * 40)
    print(f"Usuário: {nome_usuario}")
    print("Bem-vindo ao site de leitura!")


# Chamada da função principal
if __name__ == "__main__":
    print("=" * 40)
    print("SISTEMA DE CADASTRO")
    print("=" * 40)
    print()
    validar_cadastro()
1 resposta
solução!

Oi, estudante. Tudo bem com você?

Notei que este tópico acabou ficando duplicado no fórum. Como tem a mesma atividade no outro espaço, já enviei a resposta com a análise do seu código por lá.

Para mantermos a organização da nossa comunidade e concentrarmos a conversa em um único lugar, vou pedir que você acompanhe o feedback e tire suas dúvidas através daquele outro post.

Parabéns pela dedicação nos estudos e lembre-se que o fórum está sempre à disposição para te apoiar.

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