Määrake Pythonis, kas arv on täisarv või kümnendarv.
Järgmisi juhtumeid selgitatakse koos näidiskoodidega.
- Määratleb, kas arv on täisarvuline int või ujukomaarvuline float.:
isinstance()
- Määratleb, kas float-tüüpi arv on täisarv (0 kohta pärast koma).:
float.is_integer()
- Määrab kindlaks, kas numbrite rida on täisarv.
Kümnendarvu täisarvulise ja kümnendarvulise väärtuse saamiseks vt järgmist artiklit.
Järgnevas artiklis leiate teavet selle kohta, kuidas määrata, kas string on number (sh hiina numbrid jne), mitte aga täisarv või kümnendarv.
Määratleb, kas arv on täisarvu või ujukoma tüüpi.: isinstance()
Objekti tüübi saab teada sisseehitatud funktsiooniga type().
i = 100
f = 1.23
print(type(i))
print(type(f))
# <class 'int'>
# <class 'float'>
isinstance(object, type)
Seda sisseehitatud funktsiooni saab kasutada selleks, et määrata, kas objekt on teatud tüüpi. Seda saab kasutada selleks, et määrata, kas arv on täisarvu või ujukoma tüüpi.
print(isinstance(i, int))
# True
print(isinstance(i, float))
# False
print(isinstance(f, int))
# False
print(isinstance(f, float))
# True
Sellisel juhul hindab ta ainult tüüpi, seega ei saa ta otsustada, kas float-tüüpi väärtus on täisarv (kümnendmärgiga 0) või mitte.
f_i = 100.0
print(type(f_i))
# <class 'float'>
print(isinstance(f_i, int))
# False
print(isinstance(f_i, float))
# True
Määratleb, kas float-tüüpi arv on täisarv (0 kohta pärast koma).: float.is_integer()
Meetod is_integer() on ette nähtud float-tüübi jaoks, mis tagastab true, kui väärtus on täisarv, ja false vastasel juhul.
f = 1.23
print(f.is_integer())
# False
f_i = 100.0
print(f_i.is_integer())
# True
Näiteks funktsiooni, mis tagastab täisarvu puhul true, võib defineerida järgmiselt Teisalt, string-tüüpi puhul oleks 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
Määrab kindlaks, kas numbrite rida on täisarv.
Kui soovite kindlaks teha, et täisarvuliste numbrite jada on samuti täisarv, on võimalik kasutada järgmisi funktsioone.
Väärtuste puhul, mida saab teisendada float() abil float-tüüpi, rakendatakse meetodit is_integer() pärast teisendamist float-tüüpi ja tagastatakse tulemus.
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
Üksikasjalikumat teavet stringide teisendamise kohta numbriteks leiate järgmisest artiklist.
Üksikasjalikumat teavet selle kohta, kuidas määrata, kas string on number (sh hiina numbrid jne), leiate järgmisest artiklist.