Déterminer si un nombre est un entier ou un décimal en Python

Affaires

Déterminez si un nombre est un entier ou un décimal en Python.

Les cas suivants sont expliqués avec des exemples de codes.

  • Détermine si un nombre est un entier int ou un flottant float.:isinstance()
  • Détermine si un nombre de type flottant est un nombre entier (0 décimale).:float.is_integer()
  • Détermine si une chaîne de chiffres est un nombre entier

Pour obtenir les valeurs entières et décimales d'un nombre décimal, voir l'article suivant.

Consultez l'article suivant pour savoir comment déterminer si une chaîne est un nombre (y compris les chiffres chinois, etc.) plutôt qu'un nombre entier ou décimal.

Détermine si un nombre est de type entier ou à virgule flottante.: isinstance()

Le type d'un objet peut être obtenu avec la fonction intégrée type().

i = 100
f = 1.23

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

isinstance(object, type)
Cette fonction intégrée peut être utilisée pour déterminer si un objet est d'un type particulier. Elle peut être utilisée pour déterminer si un nombre est de type entier ou à virgule flottante.

print(isinstance(i, int))
# True

print(isinstance(i, float))
# False

print(isinstance(f, int))
# False

print(isinstance(f, float))
# True

Dans ce cas, il ne juge que le type, il ne peut donc pas juger si une valeur de type float est un entier (avec une décimale de 0) ou non.

f_i = 100.0

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

print(isinstance(f_i, int))
# False

print(isinstance(f_i, float))
# True

Détermine si un nombre de type flottant est un nombre entier (0 décimale).: float.is_integer()

La méthode is_integer() est fournie pour le type float, 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 vrai pour un nombre entier peut être définie comme suit Par contre, un type de chaîne de caractères renverrait faux.

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

Détermine si une chaîne de chiffres est un nombre entier

Si vous voulez déterminer qu'une chaîne de chiffres entiers est également un nombre entier, les fonctions suivantes sont possibles.

Pour les valeurs qui peuvent être converties en type float avec float(), la méthode is_integer() est appliquée après la conversion en float 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 l'article suivant pour plus de détails sur la conversion des chaînes de caractères en nombres.

Consultez l'article suivant pour savoir comment déterminer si une chaîne de caractères est un nombre (y compris les chiffres chinois, etc.).

Copied title and URL