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.
- RELATION :Obtenir les parties entières et décimales d'un nombre en même temps avec math.modf en Python
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.).