Pythonis selle määramine, kas arv on täisarv või kümnendkoht Pythonis

Äri

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.

Copied title and URL