Table of Contents
آشنایی با عملیات حسابی در پایتون
در این بخش با مهمترین عملگرهای حسابی در پایتون و نحوهٔ استفادهٔ آنها آشنا میشویم. فرض میکنیم مفهوم «عدد» و انواع int و float را از فصل قبل میشناسید و اینجا فقط روی خودِ عملیات تمرکز میکنیم.
عملگرهای اصلی حسابی
پایتون برای چهار عمل اصلی و چند عمل مهم دیگر، عملگرهای مشخصی دارد:
- جمع:
+ - تفریق:
- - ضرب:
* - تقسیم معمولی:
/ - تقسیم صحیح (کفِ تقسیم):
// - باقیماندهٔ تقسیم (مدول):
% - توان:
**
نمونه:
print(3 + 2) # جمع
print(5 - 1) # تفریق
print(4 * 6) # ضرب
print(8 / 2) # تقسیم معمولی (نتیجه float است)
print(8 // 3) # تقسیم صحیح
print(8 % 3) # باقیمانده
print(2 ** 3) # توان (۲ به توان ۳)خروجی:
5
4
24
4.0
2
2
8
به تفاوت / و // دقت کنید؛ / همیشه عدد اعشاری (float) برمیگرداند، حتی وقتی جواب ظاهراً عدد صحیح باشد.
اولویت عملگرها (ترتیب انجام محاسبات)
در عبارات طولانی، پایتون مثل ریاضیات از یک ترتیب مشخص برای محاسبه استفاده میکند. به طور خلاصه:
- پرانتزها:
() - توان:
** - ضرب و تقسیم و تقسیم صحیح و باقیمانده:
*،/،//،% - جمع و تفریق:
+،-
مثال:
result1 = 2 + 3 * 4
result2 = (2 + 3) * 4
print(result1)
print(result2)خروجی:
14
20
در result1 اول 3 * 4 حساب میشود (۱۲)، بعد با ۲ جمع میشود (۱۴).
در result2 به خاطر پرانتز، اول 2 + 3 حساب میشود (۵)، بعد در ۴ ضرب میشود (۲۰).
برای خواناتر شدن و جلوگیری از اشتباه، بهتر است برای عبارات پیچیده از پرانتز استفاده کنید، حتی وقتی از نظر اولویت لازم نباشد.
عملگرهای مثبت و منفی یکتایی (Unary)
علاوه بر استفادهٔ معمول + و - بین دو عدد، میتوان آنها را قبل از یک عدد هم استفاده کرد:
+xعدد را بدون تغییر برمیگرداند (کم استفادهتر)-xعلامت عدد را عوض میکند
x = 5
print(+x) # 5
print(-x) # -5این کار بهخصوص وقتی با متغیرها کار میکنید مفید است، مثلاً برای منفی کردن یک مقدار خواندهشده از ورودی.
ترکیب عملیات با متغیرها
در بسیاری از برنامهها لازم است روی متغیرها عملیات حسابی انجام دهید و نتیجه را در همان متغیر یا متغیر دیگری ذخیره کنید.
x = 10
y = 3
sum_result = x + y
diff_result = x - y
mul_result = x * y
div_result = x / y
print(sum_result)
print(diff_result)
print(mul_result)
print(div_result)
این الگو در همهجا تکرار میشود:
«یک عبارت حسابی بساز، و نتیجه را در یک متغیر ذخیره کن.»
عملگرهای انتساب ترکیبی (مثل +=)
گاهی میخواهید مقدار یک متغیر را بر اساس مقدار خودش بهروزرسانی کنید، مثلاً:
x = 10
x = x + 1چون این الگو بسیار رایج است، پایتون شکل کوتاهتری برای آن دارد:
x += 1به معنیx = x + 1x -= 1به معنیx = x - 1x = 2به معنیx = x 2x /= 2به معنیx = x / 2x //= 2،x %= 2،x **= 2و …
نمونه:
x = 10
x += 5 # x = x + 5 → x حالا 15 است
x *= 2 # x = x * 2 → x حالا 30 است
print(x)این شکل نوشتن در حلقهها و برنامههای بلند بسیار استفاده میشود.
تقسیم صحیح و باقیمانده (کاربردی)
دو عملگر // و % برای کار با تقسیم بسیار مفیدند:
a // b= خارجقسمتِ صحیحِ $a$ تقسیم بر $b$a % b= باقیماندهٔ $a$ تقسیم بر $b$
برای عدد صحیح $a$ و $b$ (با $b \neq 0$)، رابطهٔ زیر برقرار است:
$$
a = (a // b) \times b + (a \% b)
$$
مثال:
a = 17
b = 5
print(a // b) # 3
print(a % b) # 2این عملگرها برای کارهایی مثل:
- تشخیص زوج یا فرد بودن یک عدد (
x % 2) - جدا کردن رقمها در یک عدد
- کار با چرخهها و الگوهای تکرارشونده
بسیار استفاده میشوند.
رفتار تقسیم و باقیمانده با اعداد منفی (مختصر)
برای شروع، معمولاً با اعداد مثبت کار میکنید، ولی خوب است الگوی کلی را بدانید.
پایتون همیشه // را «گرد کردن به پایین» (به سمت منفی بینهایت) در نظر میگیرد و a % b را طوری حساب میکند که رابطهٔ بالا برقرار بماند.
مثال:
print(-7 // 3) # -3
print(-7 % 3) # 2 (چون -7 = -3*3 + 2)
در مراحل ابتدایی کافی است بدانید برای اعداد مثبت، // همان «قسمتِ صحیح» است و % «باقیماندهٔ معمولی».
تبدیل خودکار بین int و float در عملیات حسابی
وقتی در یک عبارت، هم int و هم float وجود داشته باشد، معمولاً نتیجه float میشود تا دقت اعشاری حفظ شود:
x = 3 # int
y = 2.0 # float
print(x + y) # 5.0 (float)
print(x * y) # 6.0 (float)
همچنین x / y همیشه float برمیگرداند، حتی اگر هر دو int باشند.
اگر به نتیجهٔ «کاملاً صحیح» نیاز دارید، از // استفاده کنید.
استفاده از پرانتز برای خوانایی بهتر
حتی وقتی از نظر اولویت عملگرها نیازی به پرانتز نیست، استفاده از پرانتز میتواند کد را خواناتر کند:
# سختخوانتر
result = a + b / c - d * e
# خواناتر
result = a + (b / c) - (d * e)برای خودتان و دیگران، نوشتن عبارتهای پیچیده با پرانتز شفافتر است و احتمال خطا را کم میکند.
چند تمرین پیشنهادی
برای تمرین (پیادهسازی در فصلهای بعد انجام میشود)، میتوانید سعی کنید:
- مساحت یک مستطیل را با داشتن طول و عرض حساب کنید:
$$\text{مساحت} = \text{طول} \times \text{عرض}$$ - میانگین سه عدد را حساب کنید:
$$\text{میانگین} = \dfrac{a + b + c}{3}$$ - با استفاده از
//و%، رقمِ یکان و دهگان یک عدد سهرقمی را جدا کنید. - یک عدد را طوری تغییر دهید که هر بار ۱۰٪ به آن اضافه شود (
x *= 1.1).
در این فصل با خودِ عملگرهای حسابی آشنا شدیم. در بخشهای بعدی خواهیم دید چطور این عملیات در کنار رشتهها، ورودی کاربر و ساختارهای کنترلی، یک برنامهٔ کامل را تشکیل میدهند.