Aceitar entrada do utilizador
Tip
Consulte a guia Texto e imagens para obter mais detalhes!
Os programas tornam-se verdadeiramente poderosos quando conseguem interagir com as pessoas que os utilizam. A função incorporada input() do Python permite-lhe pausar o seu programa, esperar que o utilizador escreva algo e capturar essa informação.
Usando input()
Pensa na input() função como um tema de pergunta. Quando o Python chega a esta linha, espera até que o utilizador escreva a sua resposta e pressione a tecla Enter antes de continuar com o resto do código.
Para guardar a resposta deles, tens de a "apanhar" usando uma variável:
favorite_color = input("What is your favorite color? ")
print("Oh, I love", favorite_color, "too!")
Neste código, favorite_color é uma variável que capta a resposta do utilizador. Se o utilizador escrever Blue e pressionar Enter, a saída é:
What is your favorite color? Blue
Oh, I love Blue too!
Podes tentar correr este código tu próprio num interpretador Python online em https://aka.ms/python-coder.
Tip
Repara no espaço em branco no final do prompt: "What is your favorite color? ". Ao aceitar entradas do utilizador, adicione um espaço ou uma nova linha antes de fechar as cotações. Se não o fizeres, a digitação do utilizador ficará colada diretamente ao teu texto, ficando desarrumada assim: What is your favorite color?Blue
Uma palavra rápida sobre os tipos de dados
Antes de avançares, ajuda saber que cada valor em Python tem um tipo de dado, que é um rótulo que indica ao Python com que tipo de valor está a trabalhar. Por exemplo, alguns tipos de dados comuns são:
-
String (
str): Texto envolto em aspas, como"Blue"ou"25". Até um número se torna texto quando está entre aspas. -
Integer (
int): Um número inteiro sem aspas, como25ou100. O Python consegue fazer matemática com estes.
Porque é que isso importa? O Python trata estes dois tipos de forma muito diferente. Podes somar números juntos (25 + 1 igual a 26), mas não podes adicionar um número ao texto ("25" + 1 causa um erro).
A entrada é sempre texto
Uma regra essencial a lembrar é que a input() função devolve sempre texto, mesmo que o utilizador escreva um número. Por exemplo:
age = input("How old are you? ")
print("Next year you will be", age + 1)
Se executares este código e escreveres 25, podes esperar que imprima 26. Em vez disso, o Python crasha e apresenta uma mensagem de erro na sua consola:
TypeError: can only concatenate str (not "int") to str
Como está age bloqueado como texto, ainda não podes fazer operações matemáticas nele.
Como ler este erro
Os erros são pistas sobre o que correu mal no código. Vamos analisar estas pistas:
-
TypeError: Está a tentar misturar dois tipos de dados que não pertencem um ao outro. -
can only concatenate str (not "int") to str: "Concatenate" significa colar texto.
O Python está a dizer: "Deste-me o texto "25" e pediste-me para colar o número 1 nele. Consigo colar texto em texto, mas não sei colar um número de matemática a um texto!"
Como input() bloqueia a resposta do utilizador dentro de aspas, o Python vê o seu cálculo como "25" + 1, o que é uma equação matemática impossível.