Skip to content

Vérifier si un nombre est entier ou décimal en Python

Cet article décrit comment vérifier si un nombre est un entier ou un décimal en Python.

  • Vérifiez si l’objet est int ou float :isinstance()
  • Vérifiez si float est un entier :is_integer()
  • Vérifier si la chaîne numérique est un entier

Consultez l’article suivant pour savoir comment obtenir les parties fractionnaires et entières.

Consultez l’article suivant pour vérifier si une chaîne est un nombre.

Vérifiez si l’objet est int ou float :isinstance()

Vous pouvez obtenir le type d’un objet avec la fonction intégrée type().

i = 100
f = 1.23

print(type(i))
print(type(f))
# <class 'int'>
# <class 'float'>

Vous pouvez également vérifier si un objet est d’un type particulier avec la fonction intégrée isinstance(object, type).

print(isinstance(i, int))
# True

print(isinstance(i, float))
# False

print(isinstance(f, int))
# False

print(isinstance(f, float))
# True

Dans ce cas, puisque seul le type est vérifié, vous ne pouvez pas vérifier si la valeur de float est un entier (la partie décimale est 0).

f_i = 100.0

print(type(f_i))
# <class 'float'>

print(isinstance(f_i, int))
# False

print(isinstance(f_i, float))
# True

Vérifiez si float est un entier :is_integer()

float a la méthode is_integer() qui renvoie True si la valeur est un entier, et False sinon.

f = 1.23

print(f.is_integer())
# False

f_i = 100.0

print(f_i.is_integer())
# True

Par exemple, une fonction qui renvoie True pour un nombre entier (int ou entier flottant) peut être définie comme suit. Cette fonction renvoie False pour str.

def is_integer_num(n):
    if isinstance(n, int):
        return True
    if isinstance(n, float):
        return n.is_integer()
    return False

print(is_integer_num(100))
# True

print(is_integer_num(1.23))
# False

print(is_integer_num(100.0))
# True

print(is_integer_num('100'))
# False

Vérifier si la chaîne numérique est un entier

Si vous souhaitez déterminer que la chaîne de nombres entiers est également un entier, la fonction suivante peut être utilisée.

Si possible, la valeur est convertie en float avec float(), puis la méthode is_integer() est appelée et le résultat est renvoyé.

def is_integer(n):
    try:
        float(n)
    except ValueError:
        return False
    else:
        return float(n).is_integer()

print(is_integer(100))
# True

print(is_integer(100.0))
# True

print(is_integer(1.23))
# False

print(is_integer('100'))
# True

print(is_integer('100.0'))
# True

print(is_integer('1.23'))
# False

print(is_integer('string'))
# False

Consultez les articles suivants pour plus de détails sur la conversion de chaînes en nombres et la gestion des exceptions avec try … except ….