Recebendo dados com input

Aprenda a pedir informações ao usuário, como em um formulário simples.

Na vida real, a comunicação é uma via de mão dupla. Nós não apenas falamos, mas também ouvimos e fazemos perguntas.

Até agora, nossos programas apenas "falavam" exibindo mensagens na tela. Mas como fazemos para o programa "ouvir" o usuário? Como fazemos perguntas e guardamos as respostas dele?

É aí que entra a função input() (que significa entrada em inglês).

O que é a função input()?

Pense no input() como um garçom com um bloco de notas. Ele se aproxima do usuário, faz uma pergunta, espera pacientemente que o usuário digite a resposta e aperte a tecla Enter, e então guarda a resposta em uma variável para podermos usar no programa.

Veja um exemplo básico:

# Fazendo a pergunta e guardando a resposta na variável 'nome'
nome = input("Qual é o seu nome? ")

# Exibindo uma mensagem personalizada usando a resposta
print("Olá, " + nome + "! Seja muito bem-vindo!")

O que acontece quando o Python executa o input()?

  1. O texto dentro dos parênteses "Qual é o seu nome? " (chamado de prompt ou pergunta) é exibido na tela.
  2. O programa pausa e fica esperando o usuário digitar alguma coisa e apertar Enter.
  3. Tudo o que o usuário digitou é entregue para a variável à esquerda do sinal de igual (nome).

A Regra mais importante do input(): Tudo é texto!

Existe um detalhe crucial sobre o input() que confunde muitos iniciantes: não importa o que o usuário digite, o input() sempre devolverá o resultado como texto (string).

Se o programa pedir um número e o usuário digitar 25, a função input() pegará esse valor e o devolverá com aspas: "25".

Você pode fazer uma verificação rápida:

idade = input("Digite sua idade: ")
print(type(idade))  # Mostra: <class 'str'>

Se você tentar fazer isso:

idade = input("Digite sua idade: ")
ano_que_vem = idade + 1  # ERRO! O Python não soma texto com número.

Combinando input() com conversão de dados

Para receber números do usuário e poder fazer contas com eles, devemos "abraçar" o input() com as funções de conversão que aprendemos, como int() ou float().

Recebendo um número inteiro:

# Perguntamos a idade (texto) e imediatamente a convertemos em inteiro
idade = int(input("Digite a sua idade: "))

ano_que_vem = idade + 1
print("No ano que vem você terá:", ano_que_vem, "anos!")

Recebendo um número decimal:

# Perguntamos a altura e a convertemos para decimal
altura = float(input("Digite a sua altura (use ponto, ex: 1.75): "))

print("Sua altura é de", altura, "metros.")

O que aprendemos nesta lição

Nesta lição, você aprendeu que:

  • A função input() serve para pausar o programa e receber dados digitados pelo usuário.
  • O texto colocado entre os parênteses do input() é a pergunta que aparece na tela.
  • Tudo o que o input() lê é retornado como texto (string), mesmo que o usuário digite apenas números.
  • Devemos converter o resultado do input() usando int() ou float() se quisermos fazer contas matemáticas com os valores recebidos.