Ákvarða hvort tala er heiltala eða aukastafur í Python

Viðskipti

Ákvarða hvort tala er heiltala eða aukastafur í Python.

Eftirfarandi tilvik eru útskýrð með sýnishornskóðum.

  • Ákveður hvort tala er heiltala int eða flottölu:isinstance()
  • Ákveður hvort flotnúmer er heil tala (0 aukastafir):float.is_integer()
  • Ákveður hvort talnastrengur sé heil tala

Til að fá heiltölu og tugagildi tugatölu, sjá eftirfarandi grein.

Sjá eftirfarandi grein fyrir upplýsingar um að ákvarða hvort strengur sé tala (þar á meðal kínverskar tölur o.s.frv.) frekar en hvort hann sé heiltala eða aukastafur.

Ákveður hvort tala er heiltala eða flottölutegund:isinstance()

Gerð hlutar er hægt að fá með innbyggðu fallgerðinni().

i = 100
f = 1.23

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

isinstance(object, type)
Þessi innbyggða aðgerð er hægt að nota til að ákvarða hvort hlutur sé af ákveðinni gerð. Þetta er hægt að nota til að ákvarða hvort tala sé heiltala eða flottölutegund.

print(isinstance(i, int))
# True

print(isinstance(i, float))
# False

print(isinstance(f, int))
# False

print(isinstance(f, float))
# True

Í þessu tilfelli dæmir það aðeins tegundina, þannig að það getur ekki dæmt hvort flotgerðargildi sé heiltala (með aukastaf 0) eða ekki.

f_i = 100.0

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

print(isinstance(f_i, int))
# False

print(isinstance(f_i, float))
# True

Ákveður hvort flotnúmer er heil tala (0 aukastafir):float.is_integer()

Aðferðin is_integer() er til staðar fyrir flotgerðina, sem skilar satt ef gildið er heiltala og að öðru leyti ósatt.

f = 1.23

print(f.is_integer())
# False

f_i = 100.0

print(f_i.is_integer())
# True

Til dæmis er hægt að skilgreina fall sem skilar satt fyrir heiltölu á eftirfarandi hátt. Aftur á móti væri strengjagerð ósönn.

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

Ákveður hvort talnastrengur sé heil tala

Ef þú vilt ákvarða að strengur af heiltölum sé líka heiltala, þá eru eftirfarandi aðgerðir mögulegar.

Fyrir gildi sem hægt er að breyta í flotgerð með float(), er is_integer() aðferðin notuð eftir umbreytinguna í flot og niðurstaðan er skilað.

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

Sjá eftirfarandi grein fyrir upplýsingar um umbreytingu strengja í tölur.

Sjá eftirfarandi grein til að fá upplýsingar um að ákvarða hvort strengur sé tala (þar á meðal kínverskar tölur o.s.frv.).