دستور if…elif…else

اگر بخواهید چند شرط را بررسی کنید چکار می‌کنید؟ می‌توانید از چندین دستور if استفاده کنید و بهتر است که این دستورات if را به صورت زیر بنویسید :

if (condition):
   code to execute
else:
   if (condition):
      code to execute
   else:
      if (condition):
         code to execute
      else:
         code to execute

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

if (condition):
   code to execute
elif (condition):
   code to execute
elif (condition):
   code to execute
else:
   code to execute

حال که نحوه استفاده از دستور if else را یاد گرفتید باید بدانید که مانند else ، elif نیز به دستور if وابسته است. دستور elif وقتی اجرا می‌شود که اولین دستور if اشتباه باشد حال اگر elif اشتباه باشد دستور elif بعدی اجرا می‌شود. و اگر آن نیز اجرا نشود در نهایت دستور else اجرا می‌شود. برنامه زیر نحوه استفاده از دستورelif را نشان می‌دهد :

  1: print("What's your favorite color?")
  2: print("[1] Black")
  3: print("[2] White")
  4: print("[3] Blue")
  5: print("[4] Red")
  6: print("[5] Yellown") 
  7: 
  8: choice = int(input("Enter your choice: "))
  9: 
 10: if (choice == 1):
 11:     print("You might like my black t-shirt.")
 12: elif (choice == 2):
 13:     print("You might be a clean and tidy person.")
 14: elif (choice == 3):
 15:     print("You might be sad today.")
 16: elif (choice == 4):
 17:     print("You might be inlove right now.")
 18: elif (choice == 5):
 19:     print("Lemon might be your favorite fruit.")
 20: else:
 21:     print("Sorry, your favorite color is not in the choices above.")
What's your favorite color?
[1] Black
[2] White
[3] Blue
[4] Red
[5] Yellow

Enter your choice: 1
You might like my black t-shirt.
What's your favorite color?
[1] Black
[2] White
[3] Blue
[4] Red
[5] Yellow

Enter your choice: 999
Sorry, your favorite color is not in the choices above.

خروجی برنامه بالا به متغیر choice وابسته است. بسته به اینکه شما چه چیزی انتخاب می‌کنید پیغامهای مختلفی چاپ می‌شود. اگر عددی که شما تایپ می‌کنید در داخل حالتهای انتخاب نباشد کد مربوط به بلوک else اجرا می‌شود.