Á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.).