کاربرد دستور if در زبان پایتون؛ آموزش شرط if، elif و else با مثال
دستور if یکی از مهمترین و پرکاربردترین ساختارهای کنترلی در زبان برنامهنویسی پایتون است. تقریباً در هر برنامهای لازم است بر اساس شرایط مختلف، تصمیم بگیریم که کدام بخش از کد اجرا شود. دستور if دقیقاً برای همین منظور استفاده میشود.
برای مثال، میتوانیم با استفاده از if بررسی کنیم که آیا یک عدد مثبت است، آیا کاربر رمز عبور درستی وارد کرده، آیا نمره دانشآموز به حد قبولی رسیده یا اینکه یک عدد زوج است یا فرد.
در این مقاله با دستور if در پایتون، ساختار if...else، چند شرط با elif، عملگرهای مقایسهای و منطقی و چند مثال کاربردی آشنا میشویم.
دستور if در پایتون چیست؟
دستور if برای اجرای شرطی کد استفاده میشود. یعنی برنامه ابتدا یک شرط را بررسی میکند و اگر نتیجه آن درست (True) باشد، دستورات داخل بلوک if را اجرا میکند.
ساختار ساده دستور if به شکل زیر است:
if condition:
دستورات مورد نظر #
در این ساختار:
برای مثال:
x = 10
:if x > 0
print("x is positive")
چون مقدار x برابر ۱۰ است و ۱۰ بزرگتر از صفر است، شرط برقرار است و عبارت زیر نمایش داده میشود:
x is positive
در پایتون، تورفتگی بخشی از ساختار نحوی برنامه است و مشخص میکند چه دستوراتی داخل یک بلوک قرار دارند.
شرط یا Condition در پایتون چیست؟
شرط، عبارتی است که نتیجه آن میتواند درست یا نادرست باشد. برای ساخت شرطها معمولاً از عملگرهای مقایسهای استفاده میکنیم.
برخی از مهمترین عملگرهای مقایسهای پایتون عبارتاند از:
|
عملگر |
کاربرد |
مثال |
|
== |
برابر بودن |
x == 10 |
|
!= |
نابرابر بودن |
x != 10 |
|
> |
بزرگتر بودن |
x > 10 |
|
< |
کوچکتر بودن |
x < 10 |
|
>= |
بزرگتر یا مساوی |
x >= 10 |
|
<= |
کوچکتر یا مساوی |
x <= 10 |
برای مثال:
age = 20
:if age >= 18
print("You can enter.")
در این مثال، اگر سن ۱۸ یا بیشتر باشد، پیام نمایش داده میشود.
دستور if...else در پایتون
گاهی برنامه باید بین دو حالت متفاوت تصمیم بگیرد. در چنین شرایطی از else در کنار if استفاده میکنیم.
ساختار کلی:
:if condition
اگر شرط درست باشد #
:else
اگر شرط نادرست باشد #
برای مثال، میتوانیم زوج یا فرد بودن یک عدد را بررسی کنیم:
x = 17
:if x % 2 == 0
("عدد زوج است")print
else:
("عدد فرد است")print
عملگر % باقیمانده تقسیم را برمیگرداند. بنابراین اگر باقیمانده تقسیم عدد بر ۲ برابر صفر باشد، عدد زوج است.
در این حالت فقط یکی از دو شاخه if یا else اجرا میشود. ساختار رسمی پایتون نیز بیان میکند که اگر شرط if درست باشد همان بلوک اجرا میشود و اگر هیچکدام از شرطهای if یا elif درست نباشند، در صورت وجود else، بلوک آن اجرا خواهد شد.
استفاده از elif برای بررسی چند شرط
گاهی فقط دو حالت نداریم و لازم است چند حالت مختلف را بررسی کنیم. در این شرایط از elif استفاده میشود.
elif کوتاهشده عبارت else if است و به ما اجازه میدهد چند شرط را پشت سر هم بررسی کنیم.
ساختار:
if condition1:
حالت اول #
elif condition2:
حالت دوم #
elif condition3:
حالت سوم #
else:
هیچکدام از شرایط برقرار نیست #
برای مثال، میتوانیم وضعیت یک نمره را مشخص کنیم:
score = 17
if score >= 18:
print("عالی")
elif score >= 14:
print("خوب")
elif score >= 10:
print("قابل قبول")
else:
print("مردود")
از آنجا که مقدار score برابر ۱۷ است، شرط دوم برقرار میشود و خروجی زیر نمایش داده خواهد شد:
خوب
نکته مهم این است که پایتون شرطها را به ترتیب بررسی میکند و با پیدا شدن نخستین شرط درست، همان شاخه را اجرا میکند و از ادامه بررسی این زنجیره صرفنظر میکند.
استفاده از چند شرط با and و or
در بسیاری از برنامهها لازم است چند شرط را همزمان بررسی کنیم. برای این کار میتوانیم از عملگرهای منطقی استفاده کنیم.
عملگر and
با and باید هر دو شرط درست باشند.
age = 20
has_card = True
if age >= 18 and has_card:
print("ورود مجاز است")
عملگر or
با or کافی است حداقل یکی از شرطها درست باشد:
day = "Friday"
if day == "Friday" or day == "Thursday":
print("تعطیل است")
عملگر not
not نتیجه یک شرط را معکوس میکند:
is_locked = False
if not is_locked:
print("دسترسی امکانپذیر است")
عملگرهای and، or و not در پایتون برای ترکیب و معکوس کردن عبارتهای منطقی استفاده میشوند و and و or رفتار کوتاهمدار (short-circuit) دارند.
استفاده از if برای بررسی زوج یا فرد بودن عدد
یکی از مثالهای ساده و مناسب برای یادگیری if، تشخیص زوج یا فرد بودن یک عدد است.
number = 25
if number % 2 == 0:
print("عدد زوج است")
else:
print("عدد فرد است")
اگر عدد بر ۲ بخشپذیر باشد، باقیمانده صفر خواهد بود و برنامه آن را زوج در نظر میگیرد.
دستور if در تابع پایتون
میتوانیم دستورهای شرطی را داخل توابع نیز استفاده کنیم. این کار باعث میشود یک منطق را چندین بار و برای ورودیهای مختلف استفاده کنیم.
برای مثال:
def print_parity(x):
if x % 2 == 0:
print("عدد زوج است")
else:
print("عدد فرد است")
اکنون میتوانیم تابع را با اعداد مختلف فراخوانی کنیم:
print_parity(17)
print_parity(22)
خروجی:
عدد فرد است
عدد زوج است
مزیت استفاده از تابع این است که منطق تشخیص زوج یا فرد بودن را یک بار مینویسیم و سپس میتوانیم آن را برای ورودیهای مختلف استفاده کنیم.
دستور pass در if چیست؟
گاهی اوقات میخواهیم یک شرط را در برنامه ایجاد کنیم اما هنوز تصمیم نگرفتهایم چه کدی داخل آن قرار بگیرد.
از آنجا که بدنه یک بلوک شرطی باید شامل یک دستور باشد، میتوانیم از pass استفاده کنیم.
age = 20
if age >= 18:
pass
pass هیچ عملی انجام نمیدهد و معمولاً به عنوان یک placeholder یا جای نگهدارنده برای کدی که قرار است بعداً نوشته شود استفاده میشود.
مثال کاربردی if در پایتون؛ محاسبه وضعیت قبولی دانشآموز
فرض کنید میخواهیم برنامهای بنویسیم که نمره یک دانشآموز را دریافت کند و وضعیت او را مشخص کند:
score = float(input("نمره خود را وارد کنید: "))
if score >= 18:
print("عالی")
elif score >= 10:
print("قبول")
else:
print("مردود")
در این مثال:
این نوع ساختارهای شرطی یکی از پایههای اصلی برنامهنویسی هستند و در پروژههای واقعی نیز کاربرد بسیار زیادی دارند.
مثال کاربردی؛ بررسی رمز عبور
یکی دیگر از کاربردهای رایج if، بررسی یک مقدار ورودی است.
password = input("رمز عبور را وارد کنید: ")
if password == "123456":
print("ورود موفق بود")
else:
print("رمز عبور اشتباه است")
البته در یک برنامه واقعی نباید رمز عبور را به صورت ساده و مستقیم داخل کد قرار داد؛ این مثال صرفاً برای آموزش ساختار شرطی است.
اشتباهات رایج هنگام استفاده از if در پایتون
۱. فراموش کردن :
کد زیر اشتباه است:
if age >= 18
print("Adult")
باید بعد از شرط : قرار بگیرد:
if age >= 18:
print("Adult")
۲. استفاده از = به جای ==
این دو عملگر یکسان نیستند.
= برای انتساب مقدار استفاده میشود:
age = 18
در حالی که == برای مقایسه دو مقدار است:
if age == 18:
print("سن برابر ۱۸ است")
۳. رعایت نکردن تورفتگی
کد زیر ساختار درستی ندارد:
if age >= 18:
print("Adult")
دستور داخل if باید تورفتگی داشته باشد:
if age >= 18:
print("Adult")
۴. استفاده نادرست از ترتیب شرطها
به ترتیب قرار گرفتن شرطها توجه کنید:
score = 19
if score >= 10:
print("قبول")
elif score >= 18:
print("عالی")
در این مثال، شرط اول برای نمره ۱۹ درست است؛ بنابراین برنامه دیگر به شرط elif نمیرسد.
ترتیب صحیح:
if score >= 18:
print("عالی")
elif score >= 10:
print("قبول")
else:
print("مردود")
تفاوت if و elif و else در پایتون
|
دستور |
کاربرد |
|
if |
شروع بررسی یک شرط |
|
elif |
بررسی شرط بعدی در صورت برقرار نبودن شرط قبلی |
|
else |
اجرای یک حالت پیشفرض زمانی که هیچ شرط قبلی برقرار نباشد |
ساختار کامل:
if condition1:
...
elif condition2:
...
else:
...
وجود elif و else الزامی نیست؛ میتوان یک if ساده داشت، یا چند elif اضافه کرد و در صورت نیاز else را نیز به انتهای ساختار افزود.
چرا یادگیری if در پایتون مهم است؟
بدون ساختارهای شرطی، برنامهها تقریباً همیشه یک مسیر ثابت را اجرا میکنند. if به برنامه اجازه میدهد بر اساس دادههای ورودی و شرایط مختلف تصمیمگیری کند.
از جمله کاربردهای آن میتوان به موارد زیر اشاره کرد: