Določanje, ali je število celo ali decimalno, v programu Python

Posel

Določite, ali je število celo ali decimalno število v programu Python.

Naslednji primeri so razloženi z vzorčnimi kodami.

  • Določi, ali je število celo število int ali float s plavajočo vejico:isinstance()
  • določi, ali je število tipa float celo število (0 decimalnih mest):float.is_integer()
  • ugotovi, ali je številski niz celo število

Če želite dobiti celoštevilsko in decimalno vrednost decimalnega števila, si oglejte naslednji članek.

V naslednjem članku najdete informacije o ugotavljanju, ali je niz število (vključno s kitajskimi številkami itd.), in ne, ali gre za celo ali decimalno število.

Določi, ali je število celoštevilskega tipa ali tipa s plavajočo vejico: isinstance()

Tip predmeta lahko dobite z vgrajeno funkcijo type().

i = 100
f = 1.23

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

isinstance(object, type)
To vgrajeno funkcijo lahko uporabite za ugotavljanje, ali je predmet določene vrste. S to funkcijo lahko določimo, ali je število celoštevilskega tipa ali tipa s plavajočo vejico.

print(isinstance(i, int))
# True

print(isinstance(i, float))
# False

print(isinstance(f, int))
# False

print(isinstance(f, float))
# True

V tem primeru presodi samo tip, zato ne more presoditi, ali je vrednost tipa float celo število (z decimalno vejico 0) ali ne.

f_i = 100.0

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

print(isinstance(f_i, int))
# False

print(isinstance(f_i, float))
# True

določi, ali je število tipa float celo število (0 decimalnih mest): float.is_integer()

Za tip float je na voljo metoda is_integer(), ki vrne true, če je vrednost celo število, in false v nasprotnem primeru.

f = 1.23

print(f.is_integer())
# False

f_i = 100.0

print(f_i.is_integer())
# True

Funkcijo, ki vrne true za celo število, lahko na primer opredelimo na naslednji način Za vrsto string pa bi vrnila false.

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

ugotovi, ali je številski niz celo število

Če želite ugotoviti, ali je niz celih števil tudi celo število, lahko uporabite naslednje funkcije.

Za vrednosti, ki jih je mogoče pretvoriti v tip float s funkcijo float(), se po pretvorbi v float uporabi metoda is_integer() in vrne rezultat.

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

Podrobnosti o pretvarjanju nizov v števila najdete v naslednjem članku.

Podrobnosti o ugotavljanju, ali je niz število (vključno s kitajskimi številkami itd.), najdete v naslednjem članku.