دستور if

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

if (condition):
   code to execute

قبل از اجرای دستور if ابتدا شرط بررسی می‌شود. اگر شرط برقرار باشد یعنی درست باشد سپس کد اجرا می‌شود. شرط یک عبارت مقایسه‌ای است. می‌توان از عملگرهای مقایسه‌ای برای تست درست یا اشتباه بودن شرط استفاده کرد. اجازه بدهید که نگاهی به نحوه استفاده از دستور if در داخل برنامه بیندازیم. برنامه زیر پیغام Hello World را اگر مقدار number کمتر از 10 و Goodbye World را اگر مقدار number از 10 بزرگ‌تر باشد در صفحه نمایش می‌دهد.

  1: #Declare a variable and set it a value less than 10
  2: number = 5                                     
  3:                                                     
  4: #If the value of number is less than 10            
  5: if (number < 10):                                    
  6:     print("Hello World.")              
  7:                                                     
  8: #Change the value of a number to a value which is greater than 10                               
  9: number = 15                                        
 10:                                                     
 11: #If the value of number is greater than 10         
 12: if (number > 10):                                    
 13:     print("Goodbye World.") 
Hello World.
Goodbye World.

در خط 2 یک متغیر با نام number تعریف و مقدار 5 به آن اختصاص داده شده است. وقتی به اولین دستور if در خط 2 می‌رسیم برنامه تشخیص می‌دهد که مقدار number از 10 کمتر است یعنی 5 کوچک‌تر از 10 است.

منطقی است که نتیجه مقایسه درست می‌باشد، بنابراین دستور if دستور را اجرا می‌کند (خط 6) و پیغام Hello World چاپ می‌شود. حال مقدار number را به 15 تغییر می‌دهیم (خط 9). وقتی به دومین دستور if در خط 12 می‌رسیم برنامه مقدار number را با 10 مقایسه می‌کند و چون مقدار number یعنی 15 از 10 بزرگ‌تر است برنامه پیغام Goodbye World را چاپ می‌کند (خط 13). به این نکته توجه کنید که دستور if را می‌توان در یک خط نوشت :

if (number > 10): print("Goodbye World.") 

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

if (condition)
    statement1
    statement2
    .
    .
    .
    statementN

این هم یک مثال ساده :

x = 15                                     
                                                    
if (x > 10):
   print("x is greater than 10.")
   print("This is still part of the if statement.")

در مثال بالا اگر مقدار x از 10 بزرگ‌تر باشد دو پیغام چاپ می‌شود. حال اگر به عنوان مثال، تو رفتگی خط آخر را حذف کنیم و مقدار x از 10 بزرگ‌تر نباشد مانند کد زیر :

x = 5                                     
                                                    
if (x > 10):
   print("x is greater than 10.")
print("This is not part of the if statement.")

کد بالا در صورتی بهتر خوانده می‌شود که بین دستورات فاصله بگذاریم.

x = 5                                     
                                                    
if (x > 10):
   print("x is greater than 10.")

print("This is not part of the if statement.")

می‌بیند که دستور آخر در مثال بالا، جز دستور if نیست. اینجاست که چون ما فرض را بر این گذاشته‌ایم که مقدار x از 10 کوچک‌تر است پس خطThis is not part of the if statement. (Really?) چاپ می‌شود. در نتیجه اهمیت وجود تو رفتگی مشخص می‌شود. به عنوان تمرین همیشه حتی اگر فقط یک دستور در بدنه if داشتید برای آن یک تو رفتگی ایجاد کنید. فراموش نکنید که از قلم انداختن یک تو رفتگی باعث به وجود آمدن خطا شده و یافتن آن را سخت می‌کند. مثالی دیگر در مورد دستور if :

firstNumber  = input("Enter a number: ")
secondNumber = input("Enter another number: ")

if (firstNumber == secondNumber):
    print("{0} == {1}".format(firstNumber, secondNumber))

if (firstNumber != secondNumber):
    print("{0} != {1}".format(firstNumber, secondNumber))

if (firstNumber < secondNumber):
    print("{0} < {1}".format(firstNumber, secondNumber))

if (firstNumber > secondNumber):
    print("{0} > {1}".format(firstNumber, secondNumber))

if (firstNumber <= secondNumber):
    print("{0} <= {1}".format(firstNumber, secondNumber))

if (firstNumber >= secondNumber):
    print("{0} >= {1}".format(firstNumber, secondNumber))
Enter a number: 2
Enter another number: 5
2 != 5
2 < 5
2 <= 5
Enter a number: 10
Enter another number: 3
10 != 3
10 > 3
10 >= 3
Enter a number: 5
Enter another number: 5
5 == 5
5 <= 5
5 >= 5

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