فصل ۴: عملگرها و شرطها در پایتون

مقدمه
در این فصل از آموزش پایتون، با مفاهیم بسیار مهم و پایهای یعنی عملگرها (Operators) و ساختارهای شرطی (Conditional Statements) آشنا میشوید که کلید ساختاردهی منطق هر برنامه محسوب میشوند.
مباحث این فصل در تمام برنامههای کاربردی، بازیها، اتوماسیون و حتی پروژههای علمی به کار گرفته میشوند. پس یادگیری آنها برای هر برنامهنویس ضروری است.
۱. عملگرهای ریاضی در پایتون
پایتون تمام عملگرهای اساسی ریاضی را به سادهترین شکل ارائه میدهد:
- جمع (+): دو عدد را به هم اضافه میکند.
- تفریق (-): اختلاف دو عدد را محاسبه میکند.
- ضرب (*): حاصلضرب دو عدد را میدهد.
- تقسیم (/): نتیجه تقسیم با اعشار را بازمیگرداند. (مثلاً ۷ تقسیم بر ۳ برابر ۲.۳۳…)
- تقسیم صحیح (//): فقط بخش صحیح تقسیم را نشان میدهد (یا همان قسمت کامل).
- باقیمانده (%) یا مدول: باقیمانده تقسیم را برمیگرداند و معمولاً برای تست زوج یا فرد بودن، چرخش در آرایه یا محاسبه فاصلهها کاربرد دارد.
- توان ():** عدد اول را به توان عدد دوم میرساند (مثلاً ۲ به توان ۳ مساوی با ۸).
نکات و ترفندها
- اگر با تقسیم کار میکنید، به فرق بین
/(خروجی اعشاری) و//(خروجی عدد صحیح) دقت کنید. - استفاده از
%برای تعیین زوج یا فرد بودن عدد: اگرx % 2 == 0نتیجه دهد، عدد زوج است.
مثال ساده
اگر مقدار a برابر ۷ و مقدار b برابر ۳ باشد:
- جمع: ۱۰
- تقسیم با
/: حدود ۲.۳۳ - تقسیم صحیح با
//: عدد ۲ - مدول: عدد ۱
- توان: ۳۴۳ (یعنی ۷۷۷)
۲. عملگرهای مقایسهای (مقایسه مقدارها)
این عملگرها امکان «سؤال کردن» از دادهها را فراهم میکنند:
- آیا دو مقدار با هم برابرند؟
- آیا یک مقدار از مقدار دیگر بیشتر یا کمتر است؟
لیست عملگرهای مقایسهای
- مساوی بودن:
== - نامساوی بودن:
!= - بزرگتر بودن:
> - کوچکتر بودن:
< - بزرگتر یا مساوی بودن:
>= - کوچکتر یا مساوی بودن:
<=
نتیجه تمام این مقایسهها همیشه به صورت True (درست) یا False (غلط) است.
مثالها
- اگر
age = 20: age == 18→ False (چون ۲۰ با ۱۸ برابر نیست)age > 18→ True (چون ۲۰ بزرگتر است)age != 20→ False (چون مقدار دقیقاً بیست است)
نکته مهم
از برابر (==) برای مقایسه استفاده کنید، نه برابر قرار دادن (که = است و برای مقداردهی به متغیرهاست).
۳. ساختار شرطی: if، elif و else
در برنامهنویسی، خیلی وقتها باید بر اساس اطلاعات، تصمیم بگیرید که کدام بخش کد اجرا شود. این کار با شرطها قابل انجام است.
ساختار اصلی
- اگر یک شرط برقرار بود، فقط بخش اول اجرا میشود.
- اگر شرط برقرار نبود اما شرط دوم (elif) برقرار بود، بخش دوم اجرا میشود.
- اگر هیچکدام برقرار نبود، بخش else اجرا میگردد.
مثال کاربردی
فرض کنید کاربری نمره گرفته است:
- اگر نمره بالای ۹۰ باشد، «عالی!» چاپ شود.
- اگر نمره بین ۶۰ تا ۹۰ باشد، پیام «قبول شدید.»
- در غیر این صورت «مردود شدید.»
این ساختار کمک میکند که فقط یکی از پیامها، بسته به وضعیت نمره، نمایش داده شود.
نکات مهم
- میتوانید هر تعداد elif که نیاز دارید بنویسید.
- else همیشه آخر میآید و حالت پیشفرض است.
۴. عملگرهای منطقی (and، or و not)
گاهی باید چند شرط را همزمان بررسی کنید یا شرطی را معکوس کنید.
سه عملگر منطقی کلیدی در پایتون وجود دارند:
- and (و): همه شرطها باید درست باشند (True) تا نتیجه True شود.
- or (یا): کافی است یکی از شرطها درست باشد تا نتیجه True شود.
- not (نقیض): شرایط را معکوس میکند (True را False و بالعکس).
کاربردها با مثال
and:
اگر سن بالای ۱۸ باشد و کارت شناسایی هم داشته باشد، اجازه ورود دارد.
or:
اگر سن بالای ۱۸ است یا بلیت دارد، اجازه ورود به سینما دارد.
not:
اگر هوا بارانی نیست (not is_raining)، میتوانید بیرون بروید.
خلاصه:
- and: هر دو شرط درست = نتیجه درست.
- or: یکی از شرطها درست = نتیجه درست.
- not: معکوسکننده نتیجه شرط.
۵. تمرین عملی: مقایسه دو عدد ورودی
یک برنامه ساده بنویسید که:
- دو عدد از کاربر بگیرد.
- مشخص کند کدام عدد بزرگتر است یا اگر مساویاند پیام مناسب بدهد.
ایده برای توسعه:
- اگر عدد واردشده منفی یا صفر بود، پیام هشدار نمایش دهید.
- اگر ورودی کاربر عدد نبود، به کاربر خطا را نشان دهید.
- به کاربر امکان دهید چندبار این مقایسه را انجام دهد.
۶. خطاهایی که ممکن است با آن برخورد کنید
خطاهای متداول در شرطها و عملگرها
- استفاده از = به جای == در مقایسه
- عدم رعایت تورفتگی (indentation) در بلوکهای if/elif/else
- وارد کردن ورودی غیر عددی و تلاش برای تبدیل به عدد (ValueError)
- اشتباه در تایپ عملگرها (مثلاً and به صورت And)
راه حل
- کد خود را با مثالهای مختلف تست کنید.
- پیام خطا را بخوانید و محل اشتباه را اصلاح کنید.
- در تبدیل ورودی کاربر به عدد، همیشه از try/except استفاده کنید تا برنامه شما کرش نکند.
۷. نکات تکمیلی، سؤالات پرتکرار و راهکارها
- میتوانید چندین شرط را با استفاده از پرانتز گروهبندی کنید تا اولویت اجرا را تعیین نمایید.
- همیشه برای else، یک پیام پیشفرض مناسب بنویسید تا کاربر سردرگم نشود.
- از print برای اشکالزدایی شرطها استفاده کنید: مثلاً print(age > 18) قبل از if.
سؤال: آیا استفاده از elif ضروری است؟
خیر، اگر فقط یک جایگزین دارید، میتوانید تنها با if و else کار کنید. elif زمانی کاربرد دارد که چندین حالت جایگزین دارید.
جمعبندی
در این فصل یاد گرفتید چطور با عملگرهای ریاضی، مقایسهای و منطقی کار کنید و همچنین با ساختارهای شرطی، منطق تصمیمگیری را به برنامههای خود اضافه کنید. این مهارتها پایه ساخت هر برنامه کاربردی، سایت، ربات یا بازی هستند.
تمرین کنید: چند مثال دیگر با شرایط مختلف بنویسید. مثلاً:
- کد محاسبه بزرگترین عدد بین سه عدد
- تعیین زوج یا فرد بودن عدد
- پذیرش یا عدم پذیرش بر اساس چند مقیاس مختلف (سن، معدل و…)