Fluxo de dados e validação inicial
Objetivo da aula
Organizar entrada, transformação, verificação e saída em etapas claras.
Regra desta aula: vamos assumir que você nunca viu este assunto antes. Nenhum termo importante será usado sem explicação e todo exemplo deve ser entendido linha por linha, não apenas copiado.
Começando do zero
Um programa interativo confiável costuma separar etapas. Primeiro recebe dados, depois tenta convertê-los, valida regras, processa e só então mostra o resultado. Quando tudo é misturado em uma expressão gigante, fica difícil descobrir se o problema estava na entrada, na conversão, na regra ou na apresentação.
Uma imagem mental para entender
Pense em uma pequena fábrica: matéria-prima entra, passa por inspeção, é transformada e depois embalada. Se uma peça defeituosa entrar direto na máquina sem inspeção, o problema se espalha. O fluxo de dados de um programa também se beneficia de etapas claras.
Conceitos essenciais, sem pular etapas
Receber
Capturar o dado bruto, muitas vezes como texto.
Converter
Interpretar o formato para o tipo necessário.
Validar
Verificar regras do domínio, como limites e valores permitidos.
Processar
Executar o cálculo ou transformação principal apenas com dados já considerados válidos para aquele caminho.
Apresentar
Explicar o resultado ao usuário com contexto e unidades.
Modelo mental
ENTRADA BRUTA → CONVERSÃO → VALIDAÇÃO → PROCESSAMENTO → SAÍDA
Exemplo 1 — primeiro veja o programa inteiro
idade_texto = input("Idade (0 a 120): ")
idade = int(idade_texto)
idade_valida = 0 <= idade <= 120
print("Idade válida?", idade_valida)
if idade_valida:
proxima_idade = idade + 1
print("No próximo aniversário:", proxima_idade)
Agora vamos ler linha por linha
- A entrada chega como texto.
- A conversão cria um inteiro ou falha se o formato não for numérico.
- A comparação verifica a regra de faixa.
- O cálculo só acontece quando a condição indica que o valor atende à regra. Aqui já usamos um
ifsimples como antecipação do módulo seguinte.
Saída esperada
A saída depende da entrada fornecida.
Exemplo 2 — o mesmo conceito em outra situação
nota = float(input("Nota de 0 a 10: "))
valida = 0 <= nota <= 10
print("Entrada válida?", valida)
Converter para float não garante que a nota esteja na faixa. O valor 99.0 é um float válido e ainda assim viola a regra do domínio.
Experimento guiado
Não pule esta parte. Programação só começa a fazer sentido quando você prevê um resultado, executa e compara a previsão com o que realmente aconteceu.
- Liste as cinco etapas do fluxo para um cadastro de quantidade de produtos.
- Digite um valor numérico fora da faixa e observe que a conversão funciona, mas a validação falha.
- Escreva nomes intermediários como
nota_validaem vez de esconder toda a regra em uma mensagem. - Explique qual etapa falharia se o usuário digitasse “dez” em vez de “10”.
Mini desafio
Modele o fluxo para temperatura entre -50 e 60 °C: receber texto, converter para float, validar faixa e mostrar se o dado é aceitável.
Solução comentada
temperatura_texto = input("Temperatura em °C (-50 a 60): ")
temperatura = float(temperatura_texto)
valida = -50 <= temperatura <= 60
print("Temperatura válida?", valida)
Depois de executar a solução, altere pelo menos um valor e explique por que o novo resultado mudou. Se você só copiou e não consegue explicar cada linha, refaça o desafio em uma versão menor.
Erros comuns e por que acontecem
- Misturar entrada, conversão, validação e cálculo em uma linha difícil de investigar.
- Achar que “é número” significa “é válido”.
- Esquecer unidade ou faixa no prompt e tornar a entrada ambígua.
- Usar um valor inválido mesmo depois de detectar que a validação falhou.
Cheque se você realmente entendeu
Qual etapa vem depois da conversão?
Resposta: Normalmente a validação das regras do domínio.
O número 150 pode ser um int válido e uma idade inválida?
Resposta: Sim. Tipo e regra do domínio são questões diferentes.
Por que separar etapas?
Resposta: Para tornar o fluxo compreensível, testável e mais fácil de depurar.
Resumo em linguagem simples
Nesta aula, o ponto central foi Fluxo de dados e validação inicial. Tente explicar o modelo ENTRADA BRUTA → CONVERSÃO → VALIDAÇÃO → PROCESSAMENTO → SAÍDA sem olhar a tela. Depois, escreva um exemplo próprio menor que os apresentados. Esse exercício de explicação é parte do aprendizado, não um extra.
Conexão com a próxima aula
Na próxima aula, Condição booleana e if, vamos aproveitar exatamente o que foi construído aqui. Você não precisa memorizar tudo; precisa conseguir reconhecer o conceito e reconstruí-lo com raciocínio e testes.