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.).