A maioria dos programas é criada para resolver problemas específicos dos usuários finais. Para isso, frequentemente é necessário obter informações diretamente do usuário. Por exemplo, se quisermos determinar se uma pessoa tem idade suficiente para votar, precisamos saber sua idade para fornecer uma resposta adequada. Nesse caso, o programa deve solicitar a idade do usuário e compará-la com a idade mínima permitida para votação.
É essencial entender como capturar a entrada do usuário para que o programa possa processar os dados corretamente. Quando o programa precisa de um nome, você deve pedir ao usuário para inseri-lo; quando necessita de uma lista de nomes, deve solicitar essa sequência. Para realizar essas operações, utilizamos a função input().
2. Como funciona a função input()
A função input() pausa a execução do programa e aguarda que o usuário digite algum texto. Após receber a entrada, o Python armazena esse valor em uma variável para uso subsequente.
Por exemplo, o código abaixo pede ao usuário para digitar algo e depois exibe essa informação:
mensagem = input("Diga alguma coisa, e eu repetirei para você: ")
print(mensagem)
A função input() recebe um argumento — uma mensagem ou instrução que será mostrada ao usuário indicando o que ele deve digitar. No exemplo acima, o usuário verá a mensagem "Diga alguma coisa, e eu repetirei para você:". O programa espera até que o usuário pressione Enter antes de continuar.
O valor digitado é armazenado na variável mensagem, e a linha print(mensagem) exibe essa entrada de volta ao usuário:
Nota: Editores como Sublime Text não conseguem executar programas que requerem entrada do usuário diretamente. Você pode escrever esses programas no Sublime Text, mas deve executá-los através do terminal. Veja a seção 1.5 para mais detalhes.
2.1 Escrevendo programas claros
Sempre que usar a função input(), forneça uma instrução clara e compreensível para orientar o usuário sobre o tipo de informação desejada. Qualquer indicação que ajude o usuário a entender o que inserir é útil, como demonstrado abaixo:
nome = input("Por favor, informe seu nome: ")
print(f"\nOlá, {nome}!")
Incluir um espaço após o sinal de dois-pontos na instrução ajuda a separar o prompt do que o usuário digita, tornando claro onde começa a entrada:
Às vezes, a instrução pode ser longa. Se quiser explicar por que determinaad informação é necessária, você pode atribuir o prompt a uma variável e passá-la à função input(). Isso mantém a linha de código limpa mesmo quando o prompt é extenso.
3. Utilizando int() para entrada numérica
A função input() sempre interpreta a entrada do usuário como uma string. Vejamos um exemplo com uma sessão interativa onde o usuário insere sua idade:
input("Quantos anos você tem? ")
Apesar de o usuário digitar o número 21, ao solicitar o valor da variável idade, o Python retorna ‘21’ — uma representação textual do número. Como sabemos que o Python tratou a entrada como string? Porque está entre aspas. Se for apenas exibir o valor, isso não é um problema; porém, se quiser usá-lo em cálculos, ocorrerá um erro:
>>> idade = input("Quantos anos você tem? ")
Quantos anos você tem? 21
>>> idade >= 18
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() >= int()
O Python lança um erro ao tentar comparar uma string com um inteiro, pois não pode comparar a string ‘21’ com o número 18.
Para resolver isso, utilize a função int(), que converte uma string numérica em um valor inteiro:
idade = input("Quantos anos você tem? ")
idade = int(idade)
if idade > 26:
print(idade)
else:
print("ok")
Como aplicar a função int() em um programa real? Veja o exemplo a seguir, que veirfica se alguém atende aos requisitos de altura para andar em um brinquedo de montanha russa:
altura = input("Qual sua altura em polegadas? ")
altura = int(altura)
if altura >= 48:
print("\nVocê tem altura suficiente para andar!")
else:
print("\nVocê poderá andar quando for um pouco mais alto.")
Sempre converta entradas numéricas em valores numéricos antes de fazer cálculos ou comparações.
4. Operador módulo
O operador módulo (%) é uma ferramenta útil ao trabalhar com números. Ele divide dois valores e retorna o resto da divisão:
>> 4 % 3
1
>>> 5 % 3
2
>>> 6 % 3
0
>>> 7 % 3
1
O operador módulo não diz quantas vezes um número cabe no outro, apenas qual é o resto.
Se um número é divisível por outro sem resto, o resultado do operador módulo é zero. Isso pode ser usado para verificar se um número é par ou ímpar:
numero = input("Digite um número e eu direi se é par ou ímpar: ")
numero = int(numero)
if numero % 2 == 0:
print(f"\nO número {numero} é par.")
else:
print(f"\nO número {numero} é ímpar.")
Números pares são divisíveis por 2, então se o resto da divisão de numero por 2 for zero (numero % 2 == 0), o número é par; caso contrário, é ímpar.