Entrada pelo teclado com input

Receber dados do usuário e compreender que a entrada chega como texto.

Entrada pelo teclado com input

Objetivo da aula

Receber dados do usuário e compreender que a entrada chega como texto.

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

input() pausa o programa e espera que a pessoa digite uma linha. O ponto mais importante é: o resultado de input() é sempre texto. Se você pretende fazer uma conta, precisa converter esse texto e depois validar se o valor faz sentido.

Uma imagem mental para entender

Imagine um formulário de papel. Tudo o que a pessoa escreve chega primeiro como tinta no campo. Só depois você interpreta “25” como idade, “1.72” como altura ou “sim” como resposta. input() é parecido: ele recebe caracteres; a interpretação vem depois.

Conceitos essenciais, sem pular etapas

Prompt

O texto passado para input() é a mensagem exibida antes da digitação. Um bom prompt diz claramente o que o programa espera.

Retorno como str

Mesmo que o usuário digite 42, o resultado inicial é "42". Isso evita que input() precise adivinhar o tipo.

Conversão explícita

Para somar idades ou calcular preços, converta com int() ou float() conforme o modelo.

Validação

Depois da conversão, ainda verifique regras: uma quantidade pode precisar ser maior que zero; uma nota pode precisar estar entre 0 e 10.

Modelo mental

PROMPT → TEXTO DIGITADO → CONVERSÃO → VALIDAÇÃO → PROCESSAMENTO

Exemplo 1 — primeiro veja o programa inteiro

nome = input("Digite seu nome: ")
idade_texto = input("Digite sua idade: ")
idade = int(idade_texto)

print("Olá,", nome)
print("No próximo aniversário você terá", idade + 1)

Agora vamos ler linha por linha

  • input("Digite seu nome: ") retorna o texto digitado.
  • A idade é recebida primeiro como texto para deixar a etapa visível.
  • int(idade_texto) tenta produzir um inteiro.
  • Somente depois da conversão é seguro usar idade + 1 como soma numérica.

Saída esperada

A saída depende dos valores digitados.

Exemplo 2 — o mesmo conceito em outra situação

quantidade = int(input("Quantidade de itens: "))
preco = float(input("Preço unitário: "))
total = quantidade * preco
print("Total:", total)

Nesta forma compacta, entrada e conversão acontecem na mesma expressão. É útil, mas durante a aprendizagem separar as etapas pode facilitar a depuração.

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.

  1. Digite valores válidos e observe os tipos com type().
  2. Digite uma palavra onde o programa espera inteiro e leia a exceção produzida.
  3. Reescreva o segundo exemplo separando texto recebido e valor convertido em variáveis diferentes.
  4. Crie um prompt que diga explicitamente a unidade esperada, como “altura em metros”.

Mini desafio

Faça um programa que pergunte nome de um produto, quantidade e preço unitário, depois mostre uma frase com o total.

Solução comentada

produto = input("Produto: ")
quantidade_texto = input("Quantidade inteira: ")
preco_texto = input("Preço unitário (ex.: 12.50): ")

quantidade = int(quantidade_texto)
preco = float(preco_texto)
total = quantidade * preco

print(produto, "- total:", total)

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

  • Esquecer que input() retorna texto e tentar fazer soma numérica diretamente.
  • Escrever um prompt vago como “valor:” sem dizer o que representa ou qual formato é esperado.
  • Converter e assumir que qualquer número é permitido pela regra do programa.

Cheque se você realmente entendeu

Qual tipo input() retorna?

Resposta: str.

Por que separar entrada, conversão e validação?

Resposta: Porque são responsabilidades diferentes e falham por motivos diferentes.

Se o usuário digitar "abc" e você chamar int(), o que pode ocorrer?

Resposta: Uma ValueError.

Resumo em linguagem simples

Nesta aula, o ponto central foi Entrada pelo teclado com input. Tente explicar o modelo PROMPT → TEXTO DIGITADO → CONVERSÃO → VALIDAÇÃO → PROCESSAMENTO 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, Saída e f-strings, 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.