Kuamua ikiwa nambari ni nambari kamili au desimali katika Python

Biashara

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.

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

Copied title and URL