Odredite je li broj cijeli broj ili decimalni u Pythonu.
Sljedeći slučajevi su objašnjeni s uzorcima kodova.
- Određuje je li broj cijeli broj int ili float s pomičnim zarezom:
isinstance()
- Određuje je li broj s plutajućim brojem cijeli broj (0 decimalnih mjesta):
float.is_integer()
- Određuje je li niz brojeva cijeli broj
Da biste dobili cjelobrojne i decimalne vrijednosti decimalnog broja, pogledajte sljedeći članak.
Pogledajte sljedeći članak za informacije o određivanju je li niz broj (uključujući kineske brojeve itd.), a ne je li cijeli broj ili decimalni.
Određuje je li broj cijeli broj ili tip s pomičnim zarezom:isinstance()
Tip objekta može se dobiti pomoću ugrađene funkcije type().
i = 100
f = 1.23
print(type(i))
print(type(f))
# <class 'int'>
# <class 'float'>
isinstance(object, type)
Ova ugrađena funkcija može se koristiti za određivanje je li objekt određene vrste. Ovo se može koristiti za određivanje je li broj cijeli broj ili tip s pomičnim zarezom.
print(isinstance(i, int))
# True
print(isinstance(i, float))
# False
print(isinstance(f, int))
# False
print(isinstance(f, float))
# True
U ovom slučaju prosuđuje samo tip, tako da ne može procijeniti je li vrijednost tipa float cijeli broj (s decimalnim zarezom 0) ili ne.
f_i = 100.0
print(type(f_i))
# <class 'float'>
print(isinstance(f_i, int))
# False
print(isinstance(f_i, float))
# True
Određuje je li broj s plutajućim brojem cijeli broj (0 decimalnih mjesta):float.is_integer()
Metoda is_integer() predviđena je za tip float, koji vraća true ako je vrijednost cijeli broj i false u suprotnom.
f = 1.23
print(f.is_integer())
# False
f_i = 100.0
print(f_i.is_integer())
# True
Na primjer, funkcija koja vraća true za cijeli broj može se definirati na sljedeći način. S druge strane, vrsta stringa bi bila lažna.
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
Određuje je li niz brojeva cijeli broj
Ako želite utvrditi da je niz cjelobrojnih znamenki također cijeli broj, moguće su sljedeće funkcije.
Za vrijednosti koje se mogu pretvoriti u float tip pomoću float(), metoda is_integer() primjenjuje se nakon pretvorbe u float i rezultat se vraća.
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
Pogledajte sljedeći članak za pojedinosti o pretvaranju nizova u brojeve.
Pogledajte sljedeći članak za pojedinosti o određivanju je li niz broj (uključujući kineske brojeve itd.).