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.
- KAPCSOLÓDÓ:Egy szám egész és tizedes részének egyszerre történő kinyerése a math.modf segítségével Pythonban
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.).