Table of Contents
معرفی عددهای صحیح (`int`) و اعشاری (`float`)
در این بخش روی دو نوع عددی مهم در پایتون تمرکز میکنیم: int و float. فرض میکنیم که با مفهوم کلی «متغیر» و «نوع داده» قبلاً آشنا شدهاید؛ اینجا فقط دربارهٔ خود عددها صحبت میکنیم.
عدد صحیح (`int`)
int (مخفف integer) برای نمایش عددهای صحیح است؛ یعنی عددهایی که بخش اعشاری ندارند.
مثالهای عدد صحیح
x = 0
y = 5
age = 30
year = 2024
negative = -10
big_number = 1000000نکتهها:
- عدد صحیح میتواند مثبت، منفی یا صفر باشد.
- در پایتون، برای نوشتن
1000000نیازی به جداکنندهٔ هزارگان مثل1,000,000نیست. اگر ویرگول بگذارید، معنی کد عوض میشود. - میتوانید برای خواناتر شدن از خط زیرین استفاده کنید:
big = 1_000_000
پایتون این را همان 1000000 در نظر میگیرد.
نوع عدد صحیح را ببینیم
x = 10
print(type(x))خروجی:
<class 'int'>عدد اعشاری (`float`)
float (مخفف floating point) برای نمایش عددهایی است که بخش اعشاری دارند یا به صورت ممیز شناور نوشته میشوند.
مثالهای عدد اعشاری
pi = 3.14
temperature = -2.5
height = 1.75
zero = 0.0نکتهها:
- حتی اگر مقدار عددی صفر باشد، وقتی آن را
0.0بنویسید، نوعشfloatاست. - اگر عددی را با نقطه بنویسید، خودبهخود
floatمیشود:
x = 5.0 # این float است، نه intنماد علمی (Scientific Notation)
floatها را میتوانید به شکل نماد علمی هم بنویسید:
x = 1e3 # یعنی 1 × 10^3 = 1000.0
y = 2.5e-2 # یعنی 2.5 × 10^-2 = 0.025
در هر دو حالت، نوع داده float است:
print(type(x)) # <class 'float'>
print(type(y)) # <class 'float'>تفاوتهای مهم بین `int` و `float`
۱. نمایش و دقت اعشار
int همیشه دقیق است (چون بخش اعشاری ندارد).
float ممکن است تقریب باشد. گاهی نتیجهٔ محاسبات عجیب به نظر میرسد:
x = 0.1 + 0.2
print(x)ممکن است چیزی مثل این ببینید:
0.30000000000000004این یک محدودیت رایج در نمایش عددهای اعشاری در کامپیوتر است و فقط مخصوص پایتون نیست.
۲. نتیجهٔ عملیات ترکیبی
وقتی در یک عمل، int و float را ترکیب میکنید:
- اگر یکی از عددها float باشد، معمولاً نتیجه نیز
floatاست.
a = 3 # int
b = 2.0 # float
c = a + b
print(c) # 5.0
print(type(c)) # <class 'float'>تبدیل بین `int` و `float`
گاهی لازم است نوع عدد را عوض کنید؛ این کار را تبدیل نوع (Type Casting) مینامند.
تبدیل `int` به `float`
با تابع float() انجام میشود:
x = 5 # int
y = float(x) # تبدیل به float
print(y) # 5.0
print(type(y)) # <class 'float'>تبدیل `float` به `int`
با تابع int() انجام میشود. دقت کنید که بخش اعشاری قطع میشود (گرد نمیشود):
a = 3.9
b = int(a)
print(b) # 3
print(type(b)) # <class 'int'>چند مثال دیگر:
print(int(2.0)) # 2
print(int(-2.9)) # -2 (فقط بخش اعشاری حذف میشود)
اگر بخواهید عدد را گرد کنید (مثلاً ۳٫۹ را به ۴ تبدیل کنید)، از تابع round() استفاده میشود که در فصل عملیات و توابع ریاضی بیشتر با آن آشنا میشوید.
اعداد در ورودی و خروجی
تابع input() همیشه مقدار را به صورت str (رشته) میدهد، حتی اگر کاربر عدد بنویسد. برای کار عددی باید آن را تبدیل کنید.
تبدیل ورودی به `int`
user_input = input("یک عدد صحیح وارد کنید: ")
number = int(user_input) # تبدیل رشته به int
print(number * 2)تبدیل ورودی به `float`
user_input = input("یک عدد اعشاری وارد کنید: ")
number = float(user_input) # تبدیل رشته به float
print(number / 2)اگر کاربر چیزی وارد کند که عدد نباشد، این تبدیل خطا میدهد؛ مدیریت این خطاها در فصل خطاها و اشکالزدایی خواهد آمد.
چند نکتهٔ کاربردی دربارهٔ اعداد
استفادهٔ مستقیم از اعداد
همیشه لازم نیست عدد را در متغیر ذخیره کنید؛ میتوانید مستقیماً از آن استفاده کنید:
print(2 + 3)
print(10.5 * 2)عملیات با `int` و `float`
جزئیات عملیات در فصل «عملیات پایه» میآید، اما برای دید کلی:
a = 10 # int
b = 3 # int
c = 2.5 # float
print(a + b) # 13 (int + int => int)
print(a / b) # 3.3333333333333335 (تقسیم همیشه float برمیگرداند)
print(a * c) # 25.0 (int * float => float)جمعبندی کوتاه
intبرای عددهای بدون اعشار (مثبت، منفی یا صفر).floatبرای عددهای دارای اعشار یا نماد علمی.- ترکیب
intوfloatمعمولاً نتیجه راfloatمیکند. - با
int()وfloat()میتوانید نوع عدد را تغییر دهید. - برای کار با عددهایی که از
input()میآیند، باید آنها را به نوع عددی مناسب تبدیل کنید.