Pular para o conteúdo

Como Usar Input para Ler um Número Inteiro em Python?

[

Como Ler Entradas de Inteiros em Python

por Charles de Villiers, em 27 de março de 2023 básico

Se você já desenvolveu um aplicativo interativo baseado em texto em Python, provavelmente já percebeu que precisa de uma maneira confiável de solicitar ao usuário entradas de números inteiros. Não é suficiente simplesmente exibir um prompt e coletar as teclas digitadas. É preciso verificar se a entrada do usuário realmente representa um número inteiro. Caso contrário, seu código deve reagir adequadamente, normalmente repetindo o prompt.

Neste tutorial, você aprenderá como criar uma função utilitária reutilizável que garantirá entradas de números inteiros válidas de um usuário interativo. Ao longo do caminho, você aprenderá sobre as ferramentas do Python para obter uma string do console e converter essa string em um número inteiro.

Sempre que você estiver escrevendo um programa que interage com o teclado, é preciso escrever código de forma defensiva para gerenciar entradas inválidas. Neste tutorial, você aprenderá a maneira mais Pythonica de lidar com essa situação. Você tratará quaisquer erros de forma robusta dentro de uma função que é garantida para retornar apenas números inteiros.

Como Obter Valores de Entrada Inteiros em Python

Por que você deve ter cuidado com a função input() do Python 2Mostrar/Ocultar

Devido a esse problema, o Python 2 também fornecia a função raw_input() como uma alternativa muito mais segura, mas sempre havia o risco de que um programador desprevenido escolhesse a função mais óbvia chamada input().

O Python 3 renomeou raw_input() para input() e removeu a versão antiga e arriscada de input(). Neste tutorial, você usará o Python 3, portanto, esse problema não será uma preocupação.

number_as_string = input("Por favor, digite um número inteiro: ")
number_as_integer = int(number_as_string)
print(f"O valor do inteiro é {number_as_integer}")

Quando o trecho de código acima é executado, o interpretador pausa na função input() e solicita ao usuário que digite um número inteiro. Um cursor piscante aparece no final do prompt e o sistema aguarda o usuário digitar uma string arbitrária de caracteres.

Quando o usuário pressiona a tecla Enter, a função retorna uma string contendo os caracteres digitados, sem um caractere de nova linha. Como um lembrete de que o valor recebido é uma string, você nomeou a variável de recebimento de number_as_string.

A próxima linha tenta analisar number_as_string como um número inteiro e armazenar o resultado em number_as_integer. Você usa o construtor da classe int() para fazer a conversão. Finalmente, a função print() exibe o resultado.

Lidando com Entradas Inválidas

Você provavelmente já percebeu que o código acima é extremamente otimista. Você não pode sempre confiar que o usuário digitará um número inteiro válido. Existem várias situações em que o usuário pode cometer erros, como digitar letras em vez de números ou inserir espaços em branco adicionais. É importante lidar com esses casos de entrada inválida de maneira adequada.

Para lidar com entradas inválidas, você pode usar loops e estruturas condicionais para verificar se a entrada é uma string que pode ser convertida em um número inteiro válido.

Aqui está um exemplo de código:

def get_valid_integer_input(prompt):
while True:
user_input = input(prompt)
try:
integer_value = int(user_input)
return integer_value
except ValueError:
print("Entrada inválida. Por favor, digite um número inteiro válido.")
integer_input = get_valid_integer_input("Por favor, digite um número inteiro: ")
print(f"O número inteiro digitado foi: {integer_input}")

No exemplo acima, você define uma função chamada get_valid_integer_input que recebe um prompt como argumento. A função usa um loop infinito para continuar solicitando a entrada do usuário até que uma entrada válida seja fornecida.

Dentro do loop, a função input() é usada para obter a entrada do usuário. Em seguida, a função int() é usada para tentar converter a entrada do usuário em um número inteiro. Se a conversão for bem-sucedida, o valor inteiro é retornado pela função, e o loop é interrompido.

Se ocorrer um erro na conversão, uma exceção do tipo ValueError será gerada. Nesse caso, a mensagem “Entrada inválida. Por favor, digite um número inteiro válido.” será exibida, e o loop continuará para solicitar uma nova entrada do usuário.

Ao usar a função get_valid_integer_input, você pode garantir que a entrada do usuário seja um número inteiro válido e evitar erros causados por entradas inválidas.

Conclusão

Neste tutorial, você aprendeu como obter entradas de números inteiros dos usuários em Python. Python fornece a função input() para obter uma string do usuário, e você pode convertê-la em um número inteiro usando a função int(). É importante lidar com entradas inválidas verificando se a string pode ser convertida em um número inteiro válido.

Você também aprendeu como criar uma função utilitária reutilizável para garantir que a entrada do usuário seja um número inteiro válido. Essa função usa um loop e estruturas condicionais para solicitar entrada até que uma entrada válida seja fornecida. Isso irá melhorar a robustez do seu código ao lidar com entradas de usuários.

Agora você pode usar essas técnicas para criar aplicativos interativos em Python que leiam entradas de números inteiros com segurança e respondam adequadamente a entrada inválida.

Próximos Passos

Aqui estão alguns recursos adicionais para você explorar e continuar aprimorando suas habilidades em Python:

Continue praticando e explorando esses recursos para aprimorar suas habilidades em Python. Boa sorte em sua jornada de programação!