Вызначэнне таго, ці з’яўляецца лік цэлым або дзесятковым у 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, які вяртае праўду, калі значэнне з’яўляецца цэлым лікам, і ілжыва ў адваротным выпадку.

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

Вызначае, ці з’яўляецца лікавы радок цэлым лікам

Калі вы хочаце вызначыць, што радок цэлых лічбаў таксама з’яўляецца цэлым лікам, магчымыя наступныя функцыі.

Для значэнняў, якія можна пераўтварыць у тып 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

Больш падрабязную інфармацыю аб пераўтварэнні радкоў у лічбы глядзіце ў наступным артыкуле.

Глядзіце наступны артыкул, каб даведацца, як вызначыць, ці з’яўляецца радок лікам (уключаючы кітайскія лічбы і г.д.).

Copied title and URL