گزاره‌های if

زمانی که آزمون‌های شرطی را درک کردید می‌توانید نوشتن گزاره‌های if را آغاز کنید. انواع مختلفی از گزاره‌های if وجود دارد و انتخاب آن‌ها به تعداد شرط‌هایی که نیاز به آزمودن دارند بستگی دارد. در بحث مربوط به آزمون‌های شرطی، مثال‌های متعدّدی از عبارت‌های if دیدید امّا اکنون آن را عمیق‌تر بررسی می‌کنیم.

گزاره‌های if ساده

ساده‌ترین نوع گزاره‌ی if یک آزمون و یک عملکرد دارد:

1
2
if conditional_test:
    do something

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

اکنون متغیّری را برای نمایش سن یک نفر در نظر می‌گیریم و می‌خواهیم بدانیم آیا به سنّ قانونی برای رای دادن رسیده یا نه. کد زیر امکان رای دادن شخص را بررسی می‌کند:

1
2
3
4
age = 19

if age >= 18:
    print("You are old enough to vote!")

در 1 پایتون بررسی می‌کند که آیا مقدار age بزرگتر یا مساوی ۱۸ است یا نه؟ چون این شرط برقرار است پایتون دستور print() تورفته را اجرا می‌کند:

1
You are old enough to vote!

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

می‌توانید هر تعداد خط که خواستید به بخش بعد از گزاره‌ی if اضافه کنید. بیایید خطّی دیگر به خروجی اضافه کنید و بپرسیم که آیا فرد برای رای دادن ثبت نام کرده است یا نه:

1
2
3
4
5
age = 19

if age >= 18:
    print("You are old enough to vote!")
    print("Have you registered to vote yet?")

شرط برقرار است، هر دو دستور print() تورفته‌اند، پس هر دو خط چاپ می‌شود:

1
2
You are old enough to vote!
Have you registered to vote yet?

اگر مقدار age کمتر از ۱۸ باشد این برنامه هیچ خروجی‌ای نخواهد داشت.

گزاره‌های if-else

اغلب می‌خواهید هنگام برقراری یک شرط کار خاصّی انجام دهید و در صورت عدم برقراری کار دیگری. دستور if-else پایتون چنین امکانی فراهم می‌آورد. ساختار if-else مشابه گزاره‌ی if ساده است امّا گزاره‌ی else به شما اجازه می‌دهد که عملی یا مجموعه‌ای از عمل‌ها را پس از برقرار نشدن شرط اجرا کنید.

مانند مثال قبلی خطاب به کسانی که به سن رای دادن رسیده‌اند پیامی چاپ می‌کنیم امّا این بار به کسانی که به سن قانونی نرسیده‌اند هم پیامی می‌دهیم.

1
2
3
4
5
6
7
8
9
age = 17

if age >= 18:
    print("You are old enough to vote!")
    print("Have you registered to vote yet?")

else:
    print("Sorry, you are too young to vote.")
    print("Please register to vote as soon as you turn 18!")

اگر شرط 1 برقرار شود اوّلین مجموعه‌دستورهای تورفته‌ی print() اجرا می‌شود. اگر آزمون False ارزیابی شود، کد else در 2 اجرا خواهد شد. چون این بار age زیر ۱۸ است، شرط برقرار نمی‌شود و کدی اجرا می‌شود که در بخش else آمده است:

1
2
Sorry, you are too young to vote.
Please register to vote as soon as you turn 18!

این کد به این دلیل کار می‌کند که تنها دو حالت ممکن برای ارزیابی وجود دارد: یا شخص به سن قانونی برای رای دادن رسیده یا نرسیده. در چنین شرایطی که پایتون باید یکی از دو کار ممکن را انجام دهد، ساختار if-else به خوبی کار می‌کند. در یک زنجیره‌ی if-else ساده مانند این، همیشه یکی از دو کار اجرا می‌شود.