تعیین اینکه یک عدد در پایتون یک عدد صحیح یا اعشاری است

کسب و کار

تعیین کنید که یک عدد در پایتون یک عدد صحیح است یا اعشاری.

موارد زیر با نمونه کد توضیح داده شده است.

  • تعیین می کند که آیا یک عدد یک عدد صحیح است یا یک شناور ممیز شناور:isinstance()
  • تعیین می کند که آیا یک عدد نوع شناور یک عدد صحیح است (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

در این مورد، فقط نوع را قضاوت می کند، بنابراین نمی تواند قضاوت کند که آیا مقدار نوع شناور یک عدد صحیح (با اعشار 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()

متد is_integer() برای نوع float ارائه شده است که اگر مقدار یک عدد صحیح باشد true و در غیر این صورت false بر می گرداند.

f = 1.23

print(f.is_integer())
# False

f_i = 100.0

print(f_i.is_integer())
# True

به عنوان مثال، تابعی که true را برای یک عدد صحیح برمی گرداند، می تواند به صورت زیر تعریف شود، از سوی دیگر، نوع رشته false خواهد بود.

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

برای جزئیات بیشتر در مورد تبدیل رشته ها به اعداد به مقاله زیر مراجعه کنید.

برای جزئیات بیشتر در مورد تعیین اینکه آیا رشته یک عدد است (از جمله اعداد چینی و غیره) به مقاله زیر مراجعه کنید.