Bepalen of een getal een geheel getal of een decimaal getal is in Python

Bedrijf

Bepaal of een getal een geheel getal of een decimaal getal is in Python.

De volgende gevallen worden toegelicht met voorbeeldcodes.

  • Bepaalt of een getal een geheel getal int of een drijvend-kommagetal is:isinstance()
  • Bepaalt of een getal van het type float een geheel getal is (0 decimalen):float.is_integer()
  • Bepaalt of een getallenreeks een geheel getal is

Om de gehele en decimale waarden van een decimaal getal te verkrijgen, zie het volgende artikel.

Zie het volgende artikel voor informatie over het bepalen of een string een getal is (inclusief Chinese cijfers, enz.) in plaats van of het een geheel getal of decimaal getal is.

Bepaalt of een getal een geheel getal of een drijvend komma is: isinstance()

Het type van een object kan worden verkregen met de ingebouwde functie type().

i = 100
f = 1.23

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

isinstance(object, type)
Deze ingebouwde functie kan worden gebruikt om te bepalen of een object van een bepaald type is. Dit kan worden gebruikt om te bepalen of een getal een geheel getal of een drijvende komma is.

print(isinstance(i, int))
# True

print(isinstance(i, float))
# False

print(isinstance(f, int))
# False

print(isinstance(f, float))
# True

In dit geval beoordeelt het alleen het type, dus het kan niet beoordelen of een waarde van het type float een geheel getal is (met een decimaalpunt van 0) of niet.

f_i = 100.0

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

print(isinstance(f_i, int))
# False

print(isinstance(f_i, float))
# True

Bepaalt of een getal van het type float een geheel getal is (0 decimalen): float.is_integer()

De methode is_integer() is beschikbaar voor het type float, die waar teruggeeft als de waarde een geheel getal is en anders vals.

f = 1.23

print(f.is_integer())
# False

f_i = 100.0

print(f_i.is_integer())
# True

Bijvoorbeeld, een functie die waar teruggeeft voor een geheel getal kan als volgt worden gedefinieerd Anderzijds, een string type zou onwaar zijn.

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

Bepaalt of een getallenreeks een geheel getal is

Als u wilt bepalen dat een reeks gehele cijfers ook een geheel getal is, zijn de volgende functies mogelijk.

Voor waarden die kunnen worden geconverteerd naar het type float met float(), wordt de methode is_integer() toegepast na de conversie naar float en wordt het resultaat teruggegeven.

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

Zie het volgende artikel voor details over het omzetten van strings naar getallen.

Zie het volgende artikel voor details over het bepalen of een string een getal is (inclusief Chinese cijfers, enz.).