Verifique se a entrada é inteira em Python

Manav Narula 30 janeiro 2023
  1. Use a função int() para verificar se a entrada é um número inteiro em Python
  2. Use o método isnumeric() para verificar se a entrada é um inteiro ou não
  3. Use as expressões regulares para verificar se a entrada é um número inteiro em Python
Verifique se a entrada é inteira em Python

No mundo da programação, trabalhamos muito frequentemente com a entrada do usuário. Python tem a função input() disponível, que permite ao usuário inserir a entrada desejada. Às vezes, podemos querer a entrada de um tipo específico.

No entanto, essa função converte a entrada do usuário em uma string antes de compilá-la com o programa. Portanto, não é simples usar os métodos tradicionais para verificar tipos específicos com a entrada do usuário, e temos que verificar se a string contém números ou não essencialmente.

Neste tutorial, discutiremos como verificar se a entrada inserida pelo usuário é do tipo inteiro ou não.

Use a função int() para verificar se a entrada é um número inteiro em Python

A função int() pode converter um determinado valor inteiro de string em um tipo inteiro. Ele gera um erro se o valor desejado não for um inteiro e não puder ser convertido. Podemos usar este método para verificar se a string do usuário é um inteiro ou não, conforme mostrado abaixo.

user_input = input("Enter the input ")

try:
    int(user_input)
    it_is = True
except ValueError:
    it_is = False

print(it_is)

Resultado:

Enter the input 15
True

Observe o uso do bloco try...except neste método. É usado com muita frequência ao lidar com exceções em Python.

Use o método isnumeric() para verificar se a entrada é um inteiro ou não

O método isnumeric() da string retorna True se a string contém apenas números. No entanto, é importante notar que falha com valores negativos. Isso ocorre porque ele retorna automaticamente False quando encontra o sinal - em inteiros negativos.

O código a seguir mostra como podemos usar esta função para verificar se uma string contém inteiros em Python.

user_input = input("Enter the input ")

print(user_input.isnumeric())

Resultado:

Enter the input 10
True

Também podemos usar a função isdigit() no lugar de isnumeric(); ele também tem as mesmas limitações deste método.

Use as expressões regulares para verificar se a entrada é um número inteiro em Python

Também podemos usar as expressões regulares para criar um padrão que retorna True sempre que encontra inteiros em uma string. Também podemos modificar o padrão para garantir que funcione com valores negativos. Por exemplo,

import re

user_input = input("Enter the input ")

num_format = re.compile(r"^\-?[1-9][0-9]*$")
it_is = re.match(num_format, user_input)

if it_is:
    print("True")
else:
    print("False")

Resultado:

Enter the input -15
True

Abaixo está a explicação do padrão de expressão regular - ^\-?[1-9][0-9]*$.

  • ^ é o início da string
  • \-? indica que esse número pode ser negativo ou positivo.
  • [1-9] é o primeiro dígito do número. Deve ser um número entre 1 e 9, mas não 0.
  • [0-9]* indica os seguintes dígitos. O número de dígitos pode ser qualquer um, incluindo 0.
  • $ é o fim da string.
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artigo relacionado - Python String

Artigo relacionado - Python Input