دستور if یکی از دستورات برنامه نویسی اصلی و پر کاربرد هست که در تقریبا همه زبان‌ها به نوعی  وجود دارد.دستور if در فلوچارت یک مربع است که 45 درجه چرخیده است.

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

if شرط:
    دستورات

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

if شرط:
دستورات
else:
بلاک دوم دستورات

در الگوی بالا "شرط" بررسی میشود در صورت درست بودن "بلاک یک" اجرا میشود. در صورت نادرست بودن نیز "بلاک دو" دستورات اجرا میشود.

شاید از خود بپرسید که پایتون چگونه میفهمد که کدام دستوررات جزو if هستند و کدام خارج از بدنه دستور if هستند؟ مثال زیر را ببینید.در مثال زیر دستوراتی که نسبت به if تو رفته تر هستند و قبل از آنها Space وجود دارد جزو if هستند:

i = 10
if i==0:
    print('I am in if')
    print('And me')
    print('And me')
else:
    print('I am after else')
print('I am out of if-else')
شرط درون if
میخواهم کمی در مورد ؛شرط؛ که در دستور if از آنها سخن گفتیم صحبت کنیم. جدول زیر عملگر های محاسبه ای را به همراه مثال و توضیح نشان میدهد:
عملگر توضیح مثال
عملگر های مقایسه ای پایتون
> بزرگتر از if i > 5
< کوچکتر از if i < 5
>= بزرگتر یا مساوی if i >= 5
<= کوچکتر یا مساوی if i <= 5
== مساوی if i == 5
!= نا‌مساوی if i != 5
is برای اینکه بفهمیم دو متغیر به یک چیز اشاره میکنند
if i is 5
in مقداری در یک مخزن باشد if 5 in [0,5]

عملگرهای منطقی و استفاده از آنها در if

کلمات کلیدی and به معنی «و»، or به معنی «یا» و not به معنی «نقیض» یا «برعکس» یا «اینطور نباشد» نیز با شروط استفاده میشوند:

i = 10
j = 12
if i%2 == 0 or j%2 == 0:
print("At least one of them is even")

if i+j is not 22:
print("Who changed values of i and j?!")

 مطالب مرتبط: