Amua ikiwa nambari ni nambari kamili au desimali katika Python.
Kesi zifuatazo zimefafanuliwa kwa misimbo ya sampuli.
- Huamua ikiwa nambari ni int kamili au sehemu inayoelea:
isinstance()
- Huamua ikiwa nambari ya aina ya kuelea ni nambari kamili (sehemu 0 za desimali):
float.is_integer()
- Huamua kama mfuatano wa nambari ni nambari kamili
Ili kupata nambari kamili na desimali za nambari ya desimali, angalia makala ifuatayo.
- INAYOHUSIANA:Pata sehemu kamili na desimali za nambari kwa wakati mmoja ukitumia math.modf katika Python
Tazama makala ifuatayo kwa maelezo ya kubainisha kama mfuatano ni nambari (pamoja na nambari za Kichina, n.k.) badala ya ikiwa ni nambari kamili au desimali.
Huamua kama nambari ni nambari kamili au aina ya sehemu inayoelea:isinstance()
Aina ya kitu inaweza kupatikana kwa aina ya kazi iliyojengwa ().
i = 100
f = 1.23
print(type(i))
print(type(f))
# <class 'int'>
# <class 'float'>
isinstance(object, type)
Chaguo hili la kukokotoa lililojengewa ndani linaweza kutumiwa kuamua ikiwa kitu ni cha aina fulani. Hii inaweza kutumika kubainisha ikiwa nambari ni nambari kamili au aina ya sehemu inayoelea.
print(isinstance(i, int))
# True
print(isinstance(i, float))
# False
print(isinstance(f, int))
# False
print(isinstance(f, float))
# True
Katika kesi hii, inahukumu aina tu, kwa hivyo haiwezi kuhukumu ikiwa thamani ya aina ya kuelea ni nambari kamili (iliyo na alama ya desimali ya 0) au la.
f_i = 100.0
print(type(f_i))
# <class 'float'>
print(isinstance(f_i, int))
# False
print(isinstance(f_i, float))
# True
Huamua ikiwa nambari ya aina ya kuelea ni nambari kamili (sehemu 0 za desimali):float.is_integer()
Mbinu ya is_integer() imetolewa kwa aina ya kuelea, ambayo hurejesha kweli ikiwa thamani ni nambari kamili na sivyo vinginevyo.
f = 1.23
print(f.is_integer())
# False
f_i = 100.0
print(f_i.is_integer())
# True
Kwa mfano, fomula ya kukokotoa ambayo inarudi kuwa kweli kwa nambari kamili inaweza kufafanuliwa kama ifuatavyo Kwa upande mwingine, aina ya mfuatano inaweza kuwa ya uwongo.
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
Huamua kama mfuatano wa nambari ni nambari kamili
Ikiwa unataka kubainisha kuwa mfuatano wa tarakimu kamili pia ni nambari kamili, chaguo za kukokotoa zifuatazo zinawezekana.
Kwa thamani zinazoweza kubadilishwa kuwa aina ya kuelea na float(), mbinu ya is_integer() inatumika baada ya ubadilishaji kuelea na matokeo kurudishwa.
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
Tazama nakala ifuatayo kwa maelezo zaidi juu ya kubadilisha mifuatano kuwa nambari.
Tazama nakala ifuatayo kwa maelezo zaidi juu ya kubaini ikiwa mfuatano ni nambari (pamoja na nambari za Kichina, n.k.).