تعیین کنید که یک عدد در پایتون یک عدد صحیح است یا اعشاری.
موارد زیر با نمونه کد توضیح داده شده است.
- تعیین می کند که آیا یک عدد یک عدد صحیح است یا یک شناور ممیز شناور:
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
برای جزئیات بیشتر در مورد تبدیل رشته ها به اعداد به مقاله زیر مراجعه کنید.
برای جزئیات بیشتر در مورد تعیین اینکه آیا رشته یک عدد است (از جمله اعداد چینی و غیره) به مقاله زیر مراجعه کنید.