Одређивање да ли је број цео број или децимални у Питхон-у

Бусинесс

Одредите да ли је број цео број или децимални у Питхон-у.

Следећи случајеви су објашњени са примерима кодова.

  • Одређује да ли је број цео број инт или покретни зарез:isinstance()
  • Одређује да ли је број са плутајућим бројем цео број (0 децималних места):float.is_integer()
  • Одређује да ли је низ бројева цео број

Да бисте добили целобројне и децималне вредности децималног броја, погледајте следећи чланак.

Погледајте следећи чланак за информације о томе како да одредите да ли је низ број (укључујући кинеске бројеве, итд.), а не да ли је цео број или децимални.

Одређује да ли је број цео број или тип са покретним зарезом:isinstance()

Тип објекта се може добити помоћу уграђене функције типе().

i = 100
f = 1.23

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

isinstance(object, type)
Ова уграђена функција се може користити за одређивање да ли је објекат одређеног типа. Ово се може користити да се одреди да ли је број цео број или тип са покретним зарезом.

print(isinstance(i, int))
# True

print(isinstance(i, float))
# False

print(isinstance(f, int))
# False

print(isinstance(f, float))
# True

У овом случају, процењује само тип, тако да не може да процени да ли је вредност типа флоат цео број (са децималним зарезом 0) или не.

f_i = 100.0

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

print(isinstance(f_i, int))
# False

print(isinstance(f_i, float))
# True

Одређује да ли је број са плутајућим бројем цео број (0 децималних места):float.is_integer()

Метод ис_интегер() је обезбеђен за тип флоат, који враћа труе ако је вредност цео број и нетачно у супротном.

f = 1.23

print(f.is_integer())
# False

f_i = 100.0

print(f_i.is_integer())
# True

На пример, функција која враћа тачно за цео број може се дефинисати на следећи начин. С друге стране, тип стринга би био нетачан.

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

Одређује да ли је низ бројева цео број

Ако желите да утврдите да је низ целих цифара такође цео број, могуће су следеће функције.

За вредности које се могу конвертовати у флоат тип помоћу флоат(), метода ис_интегер() се примењује након конверзије у флоат и резултат се враћа.

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

Погледајте следећи чланак за детаље о претварању низова у бројеве.

Погледајте следећи чланак за детаље о одређивању да ли је низ број (укључујући кинеске бројеве, итд.).