Annak meghatározása, hogy egy szám egész vagy tizedes szám-e Pythonban

Üzleti

Annak meghatározása, hogy egy szám egész szám vagy tizedes szám-e Pythonban.

A következő eseteket példakódokkal magyarázzuk.

  • Meghatározza, hogy egy szám egész szám-e int vagy lebegőpontos lebegőpontos float:isinstance()
  • Meghatározza, hogy egy lebegő típusú szám egész szám-e (0 tizedesjegy).:float.is_integer()
  • Meghatározza, hogy egy számsor egész szám-e

A tizedes szám egész és tizedes értékének kiszámításához lásd a következő cikket.

A következő cikkben arról olvashat, hogy hogyan lehet meghatározni, hogy egy karakterlánc szám-e (beleértve a kínai számjegyeket stb.), és nem arról, hogy egész szám vagy tizedes szám-e.

Meghatározza, hogy egy szám egész vagy lebegőpontos típusú-e: isinstance()

Egy objektum típusát a beépített type() függvénnyel kaphatjuk meg.

i = 100
f = 1.23

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

isinstance(object, type)
Ez a beépített függvény használható annak meghatározására, hogy egy objektum egy adott típushoz tartozik-e. Ez használható annak megállapítására, hogy egy szám egész vagy lebegőpontos típusú-e.

print(isinstance(i, int))
# True

print(isinstance(i, float))
# False

print(isinstance(f, int))
# False

print(isinstance(f, float))
# True

Ebben az esetben csak a típust ítéli meg, tehát nem tudja megítélni, hogy egy float típusú érték egész szám-e (0 tizedesvesszővel) vagy sem.

f_i = 100.0

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

print(isinstance(f_i, int))
# False

print(isinstance(f_i, float))
# True

Meghatározza, hogy egy lebegő típusú szám egész szám-e (0 tizedesjegy).: float.is_integer()

Az is_integer() metódus a float típushoz van megadva, amely igazat ad vissza, ha az érték egész szám, egyébként pedig hamisat.

f = 1.23

print(f.is_integer())
# False

f_i = 100.0

print(f_i.is_integer())
# True

Például egy olyan függvény, amely egy egész szám esetén igazat ad vissza, a következőképpen definiálható Másrészt egy string típus esetén hamis lenne.

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

Meghatározza, hogy egy számsor egész szám-e

Ha azt szeretnénk megállapítani, hogy egy egész számjegyekből álló karakterlánc is egész szám-e, a következő függvények lehetségesek.

Azokra az értékekre, amelyek a float() segítségével float típusúvá alakíthatók, az is_integer() metódus a float típusúvá alakítás után kerül alkalmazásra, és az eredményt kapjuk vissza.

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

A karakterláncok számokká konvertálásával kapcsolatos részleteket lásd a következő cikkben.

A következő cikkben részletesen leírjuk, hogyan határozhatjuk meg, hogy egy karakterlánc szám-e (beleértve a kínai számokat stb.).

Copied title and URL