Aceitar entrada do usuário

Concluído(a)

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, como 25 ou 100. 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.