فرض کنید می خواهیم اگر نمره یک دانش آموز کمتر از 10 شده اعلام کنیم که مردود شده و در غیر این صورت اعلام کنیم که قبول شده است. برای چنین کاری از دستور شرطی if else استفاده می کنیم. برنامه زیر را ببینید:

score=18
if score < 10:
    print('You are rejected!')
else:
    print('You are passed!')

در این برنامه ابتدا در متغیر score مقدار 18 را ذخیره می کنیم، که همان نمره دانش آموز است. سپس دستور if را قرار می دهیم و شرط را جلوی آن می نویسیم:

Score < 10

اگر نمره کمتر از 10 باشد نتیجه این گزاره درست یا True و در غیر این صورت نتیجه گزاره غلط یا False می شود. اگر نتیجه True باشد دستورات بعد از if و قبل از else اجرا می شود. در اینجا جمله زیر نمایش داده می شود:

‘You are rejected!

اگر نتیجه False باشد دستورات بعد از else اجرا می شود. در اینجه جمله زیر نمایش داده می شود:

‘You are passed!’

دقت کنید وقتی می خواهیم تعدادی دستور پشت سر هم در یک بلاک باشند و تحت شرط if اجرا شوند باید همه آنها به یک اندازه مثلا 8 تا اسپیس داخل تر از دستور if قرار بگیرند. اما دستور else: هم تراز if نوشته می شود و دوباره دستوراتی که می خواهیم در else اجرا شود را به یک اندازه داخل تر می نویسیم. به این داخل زدگی خطوط برنامه indent می گوییم.

همچنین باید به این نکته دقت کنید که در انتهای خط if و else حتما باید یک : گذاشته شود. با اجرای برنامه بالا چون نمره 18 است جمله زیر نمایش داده می شود:

‘You are passed!’

حالا برنامه زیر را ببینید:

score=7
if score < 10:
    print('You are rejected!')
else:
    print('You are passed!')
print('Your score is: ' , score)

این بار نمره را معادل 7 قرار داده ایم و یک خط هم به آخر برنامه اضافه نموده ایم. خط آخر به اندازه خط بالایی داخل زدگی ندارد و هم تراز if و else است. بنابراین این خط بعد از اجرای شرط در هر صورت اجرا می شود. نتیجه اجرای برنامه بالا به این صورت است:

You are rejected!

Your score is:  7

حالا می خواهیم برنامه ای بنویسیم که نمره را از کاربر بگیرد و اگر نمره 15 یا بیشتر باشد اعلام کند که نمره خوب است، اگر 10 یا بالاتر و کمتر از 15 باشد اعلام کند که باید بیشتر تلاش کند و اگر کمتر از 10 باشد اعلام کند که مردود است.

برنامه را به صورت زیر می نویسیم:

score=int(input('Enter the student score: '))
if score >= 15:
    print('You got a good score.')
elif score>= 10:
    print('You are passed but you have to try harder.')
else:
    print('You are rejected.')

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

اما اگر کاربر یک نمره بالای 20 یا یک نمره منفی وارد کند باید چکار کنیم؟ باید به او بفهمانیم که باید عدد بین 0 تا 20 وارد کند. برنامه زیر را ببینید:

score=int(input('Enter the student score: '))
if score>20 or score<0:
    print('Please enter a number between 0 and 20')
elif score >= 15:
    print('You got a good score.')
elif score>= 10:
    print('You are passed but you have to try harder.')
else:
    print('You are rejected.')

در خط دوم دو شرط مختلف را با هم در نظر گرفته ایم و این کار را با استفاده از or انجام داده ایم. این کلمه کلیدی که یای منطقی نام دارد باعث می شود که هر کدام از شرط ها درست بود نتیجه True شود. در نتیجه دستور مربوط به این if اجرا خواهد شد.

این برنامه را طور دیگری نیز می توانیم بنویسیم:

score=int(input('Enter the student score: '))
if score<=20 and score>=0:
    if score >= 15:
        print('You got a good score.')
    elif score>= 10:
        print('You are passed but you have to try harder.')
    else:
        print('You are rejected.')
else:
    print('Please enter a number between 0 and 20')

این بار به جای or از and استفاده کردیه ایم که و منطقی است و اگر هر دو شرط دو طرف and درست باشند نتیجه True خواهد شد. این بار داخل اولین if چند if و elif و else دیگر گذاشته شده است.

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

a=3
b=4
print (a==b)
print (a!=b)
print (a>b)
print (a<b)
print (a>=b)
print (a<=b)
print (a>=3)
print (a<=3)