Одредите да ли је број цео број или децимални у Питхон-у.
Следећи случајеви су објашњени са примерима кодова.
- Одређује да ли је број цео број инт или покретни зарез:
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
Погледајте следећи чланак за детаље о претварању низова у бројеве.
Погледајте следећи чланак за детаље о одређивању да ли је низ број (укључујући кинеске бројеве, итд.).