Aceitar entrada do usuário
Dica
Consulte a guia Texto e imagens para obter mais detalhes!
Os programas se tornam realmente poderosos quando podem interagir com as pessoas que os usam. Python função interna input() permite pausar seu programa, aguardar o usuário digitar algo e capturar essas informações.
Usando input()
Pense na input() função como um prompt de pergunta. Quando Python atingir essa linha, ele aguarda até que o usuário digite sua resposta e pressione a tecla Enter antes de continuar com o restante do código.
Para salvar a resposta, você deve "pegá-la" usando uma variável:
favorite_color = input("What is your favorite color? ")
print("Oh, I love", favorite_color, "too!")
Nesse código, favorite_color é uma variável que captura a resposta do usuário. Se o usuário digitar Blue e pressionar Enter, a saída será:
What is your favorite color? Blue
Oh, I love Blue too!
Você pode tentar executar esse código por conta própria em um interpretador de python online em https://aka.ms/python-coder.
Dica
Observe o espaço em branco no final do prompt: "What is your favorite color? ". Ao aceitar a entrada do usuário, adicione um espaço ou uma nova linha antes de fechar as aspas. Se você não fizer isso, a digitação do usuário será colada diretamente ao seu texto, parecendo confuso assim: What is your favorite color?Blue
Uma palavra rápida sobre tipos de dados
Antes de ir mais longe, ajuda saber que cada valor em Python tem um tipo de dados, que é um rótulo que informa Python com qual tipo de valor ele está trabalhando. Por exemplo, alguns tipos de dados comuns são:
-
Cadeia de caracteres (
str): texto encapsulado entre aspas, como"Blue"ou"25". Até mesmo um número se torna texto quando está entre aspas. -
Inteiro (
int): um número inteiro sem aspas, como25ou100. Python pode fazer matemática com estes.
Por que isso importa? Python trata esses dois tipos de forma muito diferente. Você pode adicionar números juntos (25 + 1 igual a 26), mas não é possível adicionar um número ao texto ("25" + 1 causa um erro).
A entrada é sempre texto
Uma regra essencial a ser lembrada é que a input() função sempre retorna texto, mesmo que o usuário digite um número. Por exemplo:
age = input("How old are you? ")
print("Next year you will be", age + 1)
Se você executar esse código e digitar 25, poderá esperar que ele imprima 26. Em vez disso, Python falha e exibe uma mensagem de erro no console:
TypeError: can only concatenate str (not "int") to str
Como o age texto está bloqueado, você ainda não pode executar operações matemáticas nele.
Como ler este erro
Erros são pistas do que deu errado no código. Vamos dividir estas pistas:
-
TypeError: você está tentando misturar dois tipos de dados que não pertencem juntos. -
can only concatenate str (not "int") to str: "Concatenar" significa associar texto.
Python está dizendo: "Você me deu o texto "25", e me pediu para colar o número 1 a ele. Posso colar texto ao texto, mas não sei como associar um número matemático ao texto!"
Como input() bloqueia a resposta do usuário dentro de aspas de texto, Python vê seu cálculo como "25" + 1, que é uma equação matemática impossível.