پایتونمقدماتی۶ دقیقه مطالعهPython 3.12+

شرط‌ها

در این درس با if و elif و else به برنامه قدرت تصمیم‌گیری می‌دهید و تورفتگی بلوک‌ها و رفتار درست/غلط مقادیر را یاد می‌گیرید.

آنچه در این درس می‌آموزید

  • با if و elif و else مسیرهای مختلف اجرای برنامه را بسازید
  • تورفتگی استاندارد پایتون را رعایت کنید
  • رفتار درستی/نادرستی مقادیر (truthiness) را پیش‌بینی کنید
نویسنده: تیم داکنامه · بازبینی: ۲۰۲۶-۱۰-۳۰
فهرست مطالب

تمام برنامه‌هایی که تا حالا نوشته‌اید خطی بودند: هر خط، بعد از خط قبلی، همیشه و بی‌قید اجرا می‌شد. قدرت واقعی برنامه وقتی پیدا می‌شود که بسته به وضعیت داده‌ها مسیر عوض شود؛ اگر نمره بالای ۱۷ بود تعریف چاپ کن، اگر بودجه کم بود هشدار بده. ابزار این تصمیم‌گیری دستور if است.

if؛ اگر این بود، این را بکن

grade.py
score = 17
if score >= 17:
    print("Excellent")
خروجی کد

Excellent

دو جزء تازه در این کد هست. اول، علامت دونقطه در انتهای سطر if: پایتون می‌فهمد بعدش بلوک کد می‌آید. دوم، تورفتگی سطر بعد: خطی که چهار فاصله جلوتر است بدنه شرط است و فقط وقتی اجرا می‌شود که شرط درست باشد. چون 17 >= 17 برقرار است، پیام چاپ شد. اگر score مثلاً ۱۵ بود، این بلوک بی‌صدا رد می‌شد و هیچ چیز چاپ نمی‌شد.

تورفتگی؛ مرز بلوک در پایتون

در اکثر زبان‌ها بلوک کد با آکولاد مشخص می‌شود و تورفتگی فقط زیبایی است؛ اما در پایتون تورفتگی بخشی از دستور زبان است. همه خط‌های هم‌تورفته بعد از دونقطه، یک بلوک محسوب می‌شوند. اگر بدنه شرط را نیتند کنید، برنامه اصلاً اجرا نمی‌شود:

python
score = 17
if score >= 17:
print("Excellent")
خروجی کد

IndentationError: expected an indented block after 'if' statement on line 2

قرارداد استاندارد پایتون چهار فاصله برای هر سطح تورفتگی است. با فاصله بزنید، نه کلید Tab؛ اگر لازم شد ویرایشگر خود را تنظیم کنید که Tab را به چهار فاصله تبدیل کند.

elif و else؛ چند مسیر با هم

زندگی فقط یک شرط ندارد. با elif (کوتاه‌شده «else if») چند شرط پشت هم بگذارید و با else حالت باقی‌مانده را بگیرید:

grade_full.py
score = 17
if score >= 17:
    print("Excellent")
elif score >= 12:
    print("Pass")
else:
    print("Fail")
خروجی کد

Excellent

قاعده مهم: شرط‌ها از بالا بررسی می‌شوند و فقط نخستین شرط برقرار اجرا می‌شود؛ بقیه حتی اگر برقرار باشند نادیده می‌روند. برای همین ترتیب شرط‌ها معنی‌دار است. اگر در این مثال score می‌بود ۹، شرط اول رد می‌شد، شرط دوم هم رد می‌شد و else اجرا می‌شد: «مردود». اگر ۱۳ بود، سطر «قبول» چاپ می‌شد و سطرهای بعدی اصلاً بررسی نمی‌شدند.

شرط‌های ترکیبی

با عملگرهای منطقی که در درس عملگرها دیدید، می‌توانید در یک if چند چیز را همزمان بررسی کنید:

beach.py
temp = 28
sunny = True
if temp > 25 and sunny:
    print("Go to the beach")
خروجی کد

Go to the beach

دونقطه‌ی if را می‌توانید به مقایسه‌های پیچیده هم وصل کنید؛ یادآوری کوچکی از درس عملگرها: نتیجه هر مقایسه یک مقدار bool است، و if فقط همان bool را نگاه می‌کند.

درست و نادرستِ هر مقدار

یک راز ظریف: هر مقداری در پایتون می‌تواند به‌عنوان شرط استفاده شود. پایتون هر مقدار را یا «درست» می‌بیند یا «نادرست». فقط چند مقدار نادرست (falsy) وجود دارد: False، صفر به هر شکل (0 و 0.0)، رشته خالی "" و None. هر چیز دیگری درست در نظر گرفته می‌شود:

check_name.py
name = ""
if name:
    print("Name entered")
else:
    print("Name is empty")
خروجی کد

Name is empty

رشته خالی نادرست است، پس مسیر else رفت. به همین رفتار می‌گویند truthiness. کد if name: خواناتر و رایج‌تر از if name != "": است و همان کار را می‌کند.

تمرین‌ها

تمرین

تمرین ۱ — زوج یا فرد؟

متغیری به نام n با مقدار ۷ تعریف کنید. با عملگر باقیمانده تشخیص دهید زوج است یا فرد و پیام مناسب («زوج» یا «فرد») چاپ کنید.

python
# Write your code here
نمایش راه‌حل
python
n = 7
if n % 2 == 0:
    print("Even")
else:
    print("Odd")
خروجی کد

Odd

::: :::

خلاصه

  • if یک بلوک از کد را فقط وقتی شرط درست باشد اجرا می‌کند.
  • بلوک در پایتون با تورفتگی ساخته می‌شود؛ استاندارد، چهار فاصله است.
  • شرط‌های if و elif از بالا بررسی می‌شوند و فقط نخستین برنده اجرا می‌شود؛ else باقی‌مانده را می‌گیرد.
  • چند مقدار فقط نادرست‌اند: False، صفر، رشته خالی و None؛ بقیه درست به حساب می‌آیند.
  • با and و or و مقایسه زنجیره‌ای شرط‌های ترکیبی می‌سازید.

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

منابع و ارجاع‌ها

درس‌های مرتبط