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()?
- O texto dentro dos parênteses
"Qual é o seu nome? "(chamado de prompt ou pergunta) é exibido na tela. - O programa pausa e fica esperando o usuário digitar alguma coisa e apertar
Enter. - 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()usandoint()oufloat()se quisermos fazer contas matemáticas com os valores recebidos.