خانه » آموزش » دستورات شرطی در پایتون؛ آموزش if، elif و else

دستورات شرطی در پایتون؛ آموزش if، elif و else

0
دستورات شرطی در پایتون

دستورات شرطی در پایتون

جلسه ۱۳ آموزش پایتون: دستورات شرطی در پایتون؛ if، elif و else

دستورات شرطی در پایتون چه کاربردی دارد ؟ در برنامه‌نویسی همیشه قرار نیست یک دستور، بدون توجه به شرایط، اجرا شود. بسیاری از برنامه‌های واقعی باید بر اساس اطلاعاتی که دریافت می‌کنند تصمیم بگیرند.

برای مثال:

  • اگر سن کاربر ۱۸ سال یا بیشتر بود، اجازه ورود بده.
  • اگر نمره دانش‌آموز حداقل ۱۰ بود، او را قبول کن.
  • اگر رمز عبور اشتباه بود، پیام خطا نمایش بده.
  • اگر عدد زوج بود، یک پیام و اگر فرد بود، پیام دیگری چاپ کن.

در پایتون برای ساخت چنین تصمیم‌هایی از دستورات شرطی استفاده می‌کنیم.

همراه با خبر ICT در این جلسه با عملگرهای مقایسه‌ای، دستور if، دستور else و دستور elif آشنا می‌شویم و یاد می‌گیریم چگونه برنامه‌هایی بنویسیم که بتوانند بر اساس شرایط مختلف رفتار متفاوتی داشته باشند.

تحقیق و تدوین مهدی گمرکی

📌 مرور جلسه قبل

در جلسه دوازدهم با تعدادی از متدهای پردازش رشته‌ها در پایتون آشنا شدیم و یاد گرفتیم چگونه اطلاعات متنی را پردازش و قالب‌بندی کنیم.

برای مثال:

name = "  ali  "

print(len(name))          # 7
print(name.strip())       # ali
print(name.upper())       # ALI
print("a,b,c".split(",")) # ['a', 'b', 'c']

همچنین با روش‌هایی مانند f-string و .format() برای قالب‌بندی رشته‌ها آشنا شدیم.

تا اینجا بیشتر برنامه‌هایی که نوشته‌ایم خطی بوده‌اند؛ یعنی دستورات از ابتدا تا انتها، به ترتیب اجرا می‌شدند و برنامه معمولاً بدون توجه به شرایط، مسیر یکسانی را طی می‌کرد.

اما برنامه‌های واقعی باید بتوانند شرایط را بررسی کنند و بر اساس نتیجه تصمیم بگیرند.

اینجاست که دستورات شرطی در پایتون وارد عمل می‌شوند.

🎯 هدف جلسه ۱۳: یادگیری دستورات شرطی در پایتون

در پایان این جلسه باید بتوانید:

  1. از عملگرهای مقایسه‌ای استفاده کنید.
  2. تفاوت = و == را توضیح دهید.
  3. با دستور if یک شرط ایجاد کنید.
  4. با else حالت جایگزین را مشخص کنید.
  5. با elif چند شرط مختلف را بررسی کنید.
  6. اهمیت ترتیب شرط‌ها را درک کنید.
  7. از if، elif و else برای حل مسائل ساده استفاده کنید.
  8. با خطاهای رایج در دستورات شرطی پایتون آشنا شوید.

🔍 عملگرهای مقایسه‌ای در پایتون

قبل از اینکه بتوانیم با if تصمیم‌گیری کنیم، باید بتوانیم دو مقدار را با یکدیگر مقایسه کنیم.

عملگرهای مقایسه‌ای دو مقدار را بررسی می‌کنند و نتیجه آن‌ها همیشه یکی از دو مقدار بولی زیر است:

True
False

مهم‌ترین عملگرهای مقایسه‌ای در پایتون عبارت‌اند از:

عملگر معنی مثال نتیجه
== برابر است با 5 == 5 True
!= نابرابر است با 5 != 3 True
> بزرگ‌تر از 7 > 2 True
< کوچک‌تر از 7 < 2 False
>= بزرگ‌تر یا مساوی 5 >= 5 True
<= کوچک‌تر یا مساوی 4 <= 3 False

مثال

print(10 > 5)
print(10 == 10)
print(10 != 7)
print(3 < 2)

خروجی:

True
True
True
False

بنابراین می‌توانیم بگوییم عملگرهای مقایسه‌ای در پایتون نتیجه‌ای از نوع بولی تولید می‌کنند.

⚠️ تفاوت = و == در پایتون

یکی از رایج‌ترین اشتباهات افراد تازه‌کار، اشتباه گرفتن = و == است.

علامت =

برای انتساب مقدار به متغیر استفاده می‌شود:

age = 20

یعنی مقدار 20 را در متغیر age قرار بده.

علامت ==

برای مقایسه دو مقدار استفاده می‌شود:

age == 20

یعنی بررسی کن که آیا مقدار age برابر با 20 است یا خیر.

مثال:

age = 20

print(age == 20)

خروجی:

True

پس به خاطر بسپارید:

= یعنی انتساب
== یعنی مقایسه

🔤 مقایسه رشته‌ها در پایتون

عملگرهای مقایسه‌ای فقط برای اعداد نیستند و می‌توانند برای رشته‌ها نیز استفاده شوند.

مثلاً:

print("ali" == "ali")

خروجی:

True

اما حروف بزرگ و کوچک با یکدیگر برابر نیستند:

print("ali" == "Ali")

خروجی:

False

در مقایسه رشته‌ها با > و < نیز پایتون بر اساس ترتیب مقایسه‌ای کاراکترها عمل می‌کند. برای مثال:

print("banana" > "apple")

خروجی:

True

زیرا در مقایسه لغوی، b بعد از a قرار می‌گیرد.

نکته: مقایسه رشته‌ها لزوماً به معنی مقایسه معنایی کلمات در زبان طبیعی نیست؛ پایتون رشته‌ها را بر اساس مقادیر کاراکترهای آن‌ها مقایسه می‌کند.

💡 ذخیره نتیجه یک شرط در متغیر

نتیجه یک مقایسه را می‌توانیم داخل یک متغیر ذخیره کنیم.

age = 20
is_adult = age >= 18

print(is_adult)

خروجی:

True

در اینجا متغیر is_adult یک مقدار بولی (bool) دارد.

✅ بیشتر بخوانیم 👈👈👈  مشخصات گوگل پیکسل ۱۱ افشا شد

این روش در برنامه‌های بزرگ‌تر می‌تواند خوانایی کد را افزایش دهد.

🧭 دستور if در پایتون چیست؟

مهم‌ترین ابزار برای ایجاد شرط در پایتون، دستور if است.

if به زبان ساده یعنی:

اگر این شرط درست بود، کدهای زیر را اجرا کن.

ساختار کلی:

if condition:
    # code

در این ساختار:

  • condition همان شرطی است که باید بررسی شود.
  • : پایان عبارت شرطی را مشخص می‌کند.
  • کدهای داخل بلوک if باید دارای تورفتگی (Indentation) باشند.

مثال ساده از if

age = 20

if age >= 18:
    print("شما مجاز به ورود هستید.")

چون شرط زیر درست است:

20 >= 18

کد داخل if اجرا می‌شود.

خروجی:

شما مجاز به ورود هستید.

اما اگر مقدار سن را تغییر دهیم:

age = 16

if age >= 18:
    print("شما مجاز به ورود هستید.")

در این حالت هیچ چیزی چاپ نمی‌شود؛ زیرا شرط 16 >= 18 برابر با False است.

📐 اهمیت تورفتگی (Indentation) در پایتون

در بسیاری از زبان‌های برنامه‌نویسی برای مشخص کردن بلوک‌های کد از {} استفاده می‌شود؛ اما پایتون برای مشخص کردن بلوک‌ها از تورفتگی یا Indentation استفاده می‌کند.

مثلاً:

age = 20

if age >= 18:
    print("بزرگسال")

خط print() با چهار فاصله نسبت به if جلوتر قرار گرفته و بنابراین بخشی از بلوک if محسوب می‌شود.

به‌طور معمول در پایتون از ۴ فاصله (spaces) برای یک سطح تورفتگی استفاده می‌شود.

کد اشتباه:

if age >= 18:
print("بزرگسال")

این کد باعث خطای IndentationError می‌شود.

➕ دستور else در پایتون

گاهی لازم است برای زمانی که شرط if برقرار نیست نیز یک رفتار مشخص کنیم.

در این شرایط از else استفاده می‌کنیم.

ساختار:

if condition:
    # اگر شرط درست باشد
else:
    # اگر شرط نادرست باشد

مثال:

score = 8

if score >= 10:
    print("قبول شدی! 🎉")
else:
    print("مردود شدی. دفعه بعد تلاش بیشتری کن 💪")

چون 8 >= 10 برابر با False است، بخش else اجرا می‌شود.

خروجی:

مردود شدی. دفعه بعد تلاش بیشتری کن 💪

👤 استفاده از if و else با ورودی کاربر

می‌توانیم شرط‌ها را با اطلاعاتی که کاربر وارد می‌کند نیز ترکیب کنیم.

age = int(input("سن خود را وارد کنید: "))

if age >= 18:
    print("شما بزرگسال هستید.")
else:
    print("شما زیر ۱۸ سال هستید.")

در این مثال از int() استفاده کرده‌ایم؛ زیرا input() مقدار واردشده توسط کاربر را به صورت رشته (str) برمی‌گرداند.

بنابراین برای انجام مقایسه عددی، آن را به عدد صحیح تبدیل کرده‌ایم.

🔁 دستور elif در پایتون

اگر فقط دو حالت داشته باشیم، if و else کافی هستند.

اما اگر چند حالت مختلف وجود داشته باشد، می‌توانیم از elif استفاده کنیم.

elif مخفف else if است و به ما اجازه می‌دهد شرط‌های مختلف را به صورت متوالی بررسی کنیم.

ساختار کلی:

if condition1:
    # block 1
elif condition2:
    # block 2
elif condition3:
    # block 3
else:
    # default block

📊 مثال دسته‌بندی نمره با if و elif

فرض کنید می‌خواهیم نمره یک دانش‌آموز را دسته‌بندی کنیم:

  • ۱۷ و بالاتر → عالی
  • ۱۴ تا کمتر از ۱۷ → خوب
  • ۱۰ تا کمتر از ۱۴ → قابل قبول
  • کمتر از ۱۰ → مردود

کد:

score = 16

if score >= 17:
    print("عالی 🌟")
elif score >= 14:
    print("خوب 👍")
elif score >= 10:
    print("قابل قبول 🙂")
else:
    print("مردود ❌")

خروجی:

خوب 👍

🔄 پایتون شرط‌های elif را چگونه بررسی می‌کند؟

پایتون شرط‌ها را از بالا به پایین بررسی می‌کند.

به محض اینکه به اولین شرط درست برسد:

  1. همان بلوک را اجرا می‌کند.
  2. سایر elifها و else را بررسی نمی‌کند.

برای مثال:

score = 16

if score >= 17:
    print("عالی")
elif score >= 14:
    print("خوب")
elif score >= 10:
    print("قابل قبول")
else:
    print("مردود")

پایتون ابتدا بررسی می‌کند:

16 >= 17 → False

سپس:

16 >= 14 → True

بنابراین "خوب" چاپ می‌شود و بررسی شرط‌های بعدی متوقف می‌شود.

✅ بیشتر بخوانیم 👈👈👈  متدهای رشته در پایتون؛ آموزش کامل String Methods و فرمت‌دهی حرفه‌ای | جلسه ۱۲

⚠️ چرا ترتیب شرط‌ها در elif مهم است؟

ترتیب شرط‌ها می‌تواند نتیجه برنامه را تغییر دهد.

کد زیر را ببینید:

score = 18

if score >= 10:
    print("قبول")
elif score >= 17:
    print("عالی")
else:
    print("مردود")

خروجی:

قبول

شاید انتظار داشته باشید "عالی" چاپ شود، اما این اتفاق نمی‌افتد.

چرا؟

چون شرط اول:

score >= 10

برای 18 درست است. بنابراین پایتون همان بلوک را اجرا می‌کند و دیگر سراغ elif نمی‌رود.

نسخه صحیح:

score = 18

if score >= 17:
    print("عالی 🌟")
elif score >= 14:
    print("خوب 👍")
elif score >= 10:
    print("قابل قبول 🙂")
else:
    print("مردود ❌")

خروجی:

عالی 🌟

قانون مهم

وقتی از چند elif استفاده می‌کنید، شرط‌ها را طوری مرتب کنید که شرط‌های خاص‌تر یا محدودتر، قبل از شرط‌های عمومی‌تر قرار بگیرند.

🧩 مثال جامع: بررسی نام کاربری و رمز عبور

حالا می‌توانیم چند مفهوم این جلسه را کنار هم قرار دهیم.

username = input("نام کاربری: ")
password = input("رمز عبور: ")

if username == "admin" and password == "1234":
    print("خوش آمدید! ورود موفق ✅")
elif username == "admin":
    print("رمز عبور اشتباه است ⚠️")
elif password == "1234":
    print("نام کاربری اشتباه است ⚠️")
else:
    print("اطلاعات ورود صحیح نیست. ❌")

در این مثال از and نیز استفاده کرده‌ایم.

and یک عملگر منطقی است و زمانی که هر دو شرط درست باشند، نتیجه درست خواهد بود.

🔜 در جلسه ۱۴ عملگرهای منطقی and، or و not را به صورت کامل بررسی خواهیم کرد.

🧠 شرط‌های ترکیبی و خوانایی کد

در برنامه‌های واقعی ممکن است بخواهیم نتیجه یک شرط را در متغیر ذخیره کنیم.

مثلاً:

age = 20
has_ticket = True

if age >= 18 and has_ticket:
    print("ورود مجاز است.")

این روش می‌تواند کد را خواناتر کند، به‌خصوص زمانی که شرط‌ها پیچیده‌تر می‌شوند.

در جلسه بعد یاد می‌گیریم چگونه با عملگرهای منطقی، چند شرط را به شکل دقیق و قابل‌کنترل با یکدیگر ترکیب کنیم.

⚠️ خطاهای رایج در دستورات شرطی پایتون

۱. فراموش کردن :

بعد از شرط باید : قرار بگیرد:

if age >= 18:
    print("بزرگسال")

نوشتن کد زیر اشتباه است:

if age >= 18
    print("بزرگسال")

این کد با خطای نحوی (SyntaxError) مواجه می‌شود.

۲. فراموش کردن تورفتگی

کد زیر صحیح نیست:

if age >= 18:
print("بزرگسال")

باید بنویسیم:

if age >= 18:
    print("بزرگسال")

۳. استفاده از = به جای ==

این کد اشتباه است:

if age = 18:
    print("18 ساله است")

برای مقایسه باید از == استفاده کنیم:

if age == 18:
    print("18 ساله است")

۴. بی‌توجهی به نوع داده

به یاد داشته باشید که input() مقدار را به صورت رشته دریافت می‌کند:

age = input("سن: ")

در اینجا age یک str است.

اگر قصد انجام محاسبات عددی یا مقایسه عددی داریم، معمولاً باید آن را تبدیل کنیم:

age = int(input("سن: "))

🧪 تمرین‌های جلسه ۱۳

حالا نوبت شماست که دستورات شرطی در پایتون را تمرین کنید.

تمرین ۱: تشخیص عدد زوج و فرد

برنامه‌ای بنویسید که یک عدد از کاربر دریافت کند و مشخص کند عدد زوج است یا فرد.

راهنمایی: از عملگر باقی‌مانده % استفاده کنید.

یک راه‌حل ممکن:

num = int(input("یک عدد وارد کنید: "))

if num % 2 == 0:
    print("عدد زوج است.")
else:
    print("عدد فرد است.")

تمرین ۲: تعیین سطح نمره

برنامه‌ای بنویسید که سه نمره از کاربر دریافت کند، میانگین آن‌ها را محاسبه کند و بر اساس میانگین، یکی از رتبه‌های A، B، C، D یا F را نمایش دهد.

توجه: معیارهای زیر صرفاً برای تمرین برنامه‌نویسی هستند و سیستم نمره‌دهی واقعی می‌تواند بسته به مدرسه، دانشگاه یا کشور متفاوت باشد.

n1 = float(input("نمره اول: "))
n2 = float(input("نمره دوم: "))
n3 = float(input("نمره سوم: "))

avg = (n1 + n2 + n3) / 3

print(f"میانگین شما: {avg:.2f}")

if avg >= 17:
    grade = "A"
elif avg >= 14:
    grade = "B"
elif avg >= 10:
    grade = "C"
elif avg >= 7:
    grade = "D"
else:
    grade = "F"

print(f"نمره کل شما: {grade}")

در این مثال از :.2f استفاده کرده‌ایم تا میانگین با دو رقم اعشار نمایش داده شود.

تمرین ۳: بررسی سن

برنامه‌ای بنویسید که سن کاربر را دریافت کند و بر اساس آن پیام مناسبی نمایش دهد.

✅ بیشتر بخوانیم 👈👈👈  درخواست فیبر نوری مخابرات؛ چرا برخی شهروندان هنوز در انتظار اتصال هستند؟

برای مثال:

  • کمتر از ۱۳ سال → کودک
  • ۱۳ تا ۱۷ سال → نوجوان
  • ۱۸ سال و بیشتر → بزرگسال

سعی کنید این تمرین را با استفاده از if، elif و else حل کنید.

تمرین ۴: بررسی قبولی

برنامه‌ای بنویسید که نمره کاربر را دریافت کند.

اگر نمره حداقل 10 بود، پیام قبولی و در غیر این صورت پیام مردودی نمایش داده شود.

score = float(input("نمره خود را وارد کنید: "))

if score >= 10:
    print("قبول شدید! 🎉")
else:
    print("مردود شدید.")

📚 جمع‌بندی جلسه ۱۳

در این جلسه با دستورات شرطی در پایتون آشنا شدیم و یاد گرفتیم چگونه برنامه را از حالت کاملاً خطی خارج کنیم.

مفهوم توضیح
== بررسی برابر بودن دو مقدار
!= بررسی نابرابر بودن دو مقدار
> بزرگ‌تر بودن
< کوچک‌تر بودن
>= بزرگ‌تر یا مساوی بودن
<= کوچک‌تر یا مساوی بودن
if اجرای یک بلوک در صورت درست بودن شرط
else اجرای بلوک جایگزین در صورت نادرست بودن شرط
elif بررسی شرط‌های جایگزین به صورت متوالی
True / False مقادیر بولی حاصل از شرط‌ها
Indentation مشخص کردن بلوک‌های کد در پایتون

نکته کلیدی جلسه

با یادگیری if، elif و else، برنامه‌های ما دیگر مجبور نیستند همیشه یک مسیر ثابت را طی کنند.

اکنون می‌توانیم به برنامه بگوییم:

اگر این اتفاق افتاد، این کار را انجام بده؛ در غیر این صورت، کار دیگری انجام بده.

این مفهوم یکی از پایه‌ای‌ترین و مهم‌ترین مفاهیم برنامه‌نویسی است و تقریباً در تمام پروژه‌های واقعی پایتون با آن سروکار خواهید داشت.

🔜 پیش‌نمایش جلسه ۱۴: عملگرهای منطقی در پایتون

در این جلسه با شرط‌های ساده کار کردیم. اما در برنامه‌های واقعی، معمولاً لازم است چند شرط را هم‌زمان بررسی کنیم.

برای مثال:

اگر سن کاربر حداقل ۱۸ سال باشد و کارت ورود داشته باشد، اجازه ورود بده.

برای ساخت چنین شرط‌هایی به عملگرهای منطقی در پایتون نیاز داریم.

در جلسه بعد با سه عملگر مهم آشنا می‌شویم:

  • and — زمانی که همه شرط‌های موردنظر باید درست باشند
  • or — زمانی که حداقل یکی از شرط‌ها باید درست باشد
  • not — برای معکوس کردن نتیجه یک شرط

با استفاده از این عملگرها می‌توانیم شرط‌های ساده را با یکدیگر ترکیب کنیم و برنامه‌های هوشمندتر و پیچیده‌تری بنویسیم.

پس قبل از رفتن به جلسه ۱۴، حتماً تمرین‌های این جلسه را انجام دهید. 🚀

❓ سوالات متداول درباره دستورات شرطی در پایتون

دستور if در پایتون چیست؟

if برای بررسی یک شرط و اجرای یک بلوک از کد در صورتی که آن شرط درست باشد استفاده می‌شود.

age = 20

if age >= 18:
    print("ورود مجاز است.")

تفاوت if و else چیست؟

if زمانی اجرا می‌شود که شرط درست باشد و else زمانی اجرا می‌شود که شرط if برقرار نباشد.

elif در پایتون چه کاربردی دارد؟

از elif برای بررسی چند شرط مختلف به صورت متوالی استفاده می‌کنیم. پایتون از بالا به پایین شرط‌ها را بررسی می‌کند و اولین شرط درست را اجرا می‌کند.

تفاوت = و == چیست؟

= برای انتساب مقدار به متغیر استفاده می‌شود، در حالی که == برای مقایسه دو مقدار به کار می‌رود.

x = 10
print(x == 10)

چرا Indentation در پایتون مهم است؟

پایتون از تورفتگی برای مشخص کردن بلوک‌های کد استفاده می‌کند. به همین دلیل رعایت تورفتگی در دستورات شرطی ضروری است.

🎯 نتیجه نهایی

تا اینجا یاد گرفتیم چگونه با استفاده از عملگرهای مقایسه‌ای و دستورات شرطی در پایتون رفتار برنامه را بر اساس شرایط مختلف تغییر دهیم.

در جلسه بعد یک قدم جلوتر می‌رویم و با عملگرهای منطقی and، or و not یاد می‌گیریم چگونه چند شرط را با یکدیگر ترکیب کنیم.

📚 جلسه بعد: عملگرهای منطقی در پایتون؛ and، or و not 🚀

 

تحقیق و تدوین مهدی گمرکی

مشاور تجارت الکترونیک

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

برای ثبت نظر عبارت ریاضی را وارد کنید! *در حال بارگذاری کپچا...