Визначення того, чи є число цілим чи десятковим у Python

Бізнес

Визначте, чи є число цілим чи десятковим у Python.

Наведені нижче випадки пояснюються зі зразками кодів.

  • Визначає, чи є число цілим int чи числом з плаваючою комою:isinstance()
  • Визначає, чи є число типу float цілим числом (0 знаків після коми):float.is_integer()
  • Визначає, чи є числовий рядок цілим числом

Щоб отримати ціле та десяткове значення десяткового числа, див. наступну статтю.

Перегляньте наступну статтю, щоб дізнатися, чи є рядок числом (включаючи китайські цифри тощо), а не цілим чи десятковим.

Визначає, чи є число цілим чи з плаваючою комою:isinstance()

Тип об’єкта можна отримати за допомогою вбудованої функції type().

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

У цьому випадку він оцінює лише тип, тому він не може визначити, чи є значення типу float цілим (з десятковою крапкою 0) чи ні.

f_i = 100.0

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

print(isinstance(f_i, int))
# False

print(isinstance(f_i, float))
# True

Визначає, чи є число типу float цілим числом (0 знаків після коми):float.is_integer()

Метод is_integer() надається для типу float, який повертає true, якщо значення є цілим числом, і false в іншому випадку.

f = 1.23

print(f.is_integer())
# False

f_i = 100.0

print(f_i.is_integer())
# True

Наприклад, функція, яка повертає 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

Визначає, чи є числовий рядок цілим числом

Якщо ви хочете визначити, що рядок цілих цифр також є цілим числом, можливі такі функції.

Для значень, які можна перетворити на тип float за допомогою float(), метод is_integer() застосовується після перетворення в float і повертається результат.

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

Перегляньте наступну статтю, щоб дізнатися більше про перетворення рядків у числа.

Перегляньте наступну статтю, щоб дізнатися, чи є рядок числом (включаючи китайські цифри тощо).