در موقعیتهای واقعی زندگی گاهی اوقات لازم است تصمیماتی بگیریم و بر اساس این تصمیمات، تعیین میکنیم که بعداً چه کاری باید انجام دهیم. شرایط مشابهی نیز در برنامهنویسی پیش میآید که در آنها نیاز به گرفتن تصمیماتی داریم و بر اساس این تصمیمات، بلوک بعدی کد را اجرا خواهیم کرد. دستورات شرطی در زبان برنامهنویسی پایتون، جهت جریان (کنترل جریان) اجرای برنامه را تعیین میکنند. با درس یازدهم از آموزش رایگان پایتون در دیتایاد همراه باشید.
انواع کنترل جریان در پایتون
دستورات کنترل جریان در پایتون به شرح زیر هستند:
۱. دستور if
۳. دستور if تو در تو (nested-if)
۴. نردبان if-elif-else
دستور if در پایتون
دستور if سادهترین دستور برای تصمیمگیری است. از این دستور برای تعیین اینکه آیا یک عبارت خاص یا بلوکی از عبارات اجرا شود یا نه، استفاده میشود.
if condition: # Statements to execute if # condition is true
در اینجا، شرط پس از ارزیابی یا درست (true) یا غلط (false) خواهد بود. دستور if مقادیر بولین را قبول میکند – اگر مقدار درست باشد، بلوک عبارات زیر دستور if اجرا خواهد شد، در غیر این صورت آن بلوک اجرا نمیشود.
همانطور که میدانیم، پایتون از تورفتگی (indentation) برای شناسایی یک بلوک استفاده میکند. بنابراین، بلوک زیر یک دستور if همانطور که در مثال زیر نشان داده شده است، شناسایی خواهد شد:
if condition: statement1 statement2 # Here if the condition is true, if block # will consider only statement1 to be inside # its block.
در مثال بالا، تنها در صورتی که شرط درست باشد، statement1 اجرا خواهد شد.
فلوچارت دستور if در پایتون
مثالی از دستور if در پایتون
از آنجا که در مثال زیر، شرط موجود در دستور if غلط است، بنابراین بلوک خود if اجرا نمیشود و بلوک خارج از دستور if اجرا میشود.
# python program to illustrate If statement i = 10 if (i > 15): print("10 is less than 15") print("I am Not in if")
خروجی:
I am Not in if
دستور If-else در پایتون
دستور if به تنهایی به ما میگوید که اگر شرطی درست باشد، بلوکی از عبارات را اجرا میکند و اگر شرط غلط باشد، چنین کاری را نمیکند. اما اگر بخواهیم در صورت غلط بودن شرط، کار دیگری انجام دهیم، میتوانیم از دستور else همراه با دستور if استفاده کنیم. در این حالت زمانی که شرط if غلط است، بلوک مشخص دیگری از کد اجرا میشود.
ساختار if-else
if (condition): # Executes this block if # condition is true else: # Executes this block if # condition is false
فلوچارت دستور if-else در پایتون
بیایید به فلوچارت دستور if-else در پایتون نگاهی بیندازیم.
استفاده از دستور if-else در پایتون
بلوک کدی که پس از دستور else قرار دارد، در صورتی که شرط موجود در دستور if غلط باشد، اجرا میشود.
# python program to illustrate If else statement #!/usr/bin/python i = 20 if (i < 15): print("i is smaller than 15") print("i'm in if Block") else: print("i is greater than 15") print("i'm in else Block") print("i'm not in if and not in else Block")
خروجی:
i is greater than 15 i'm in else Block i'm not in if and not in else Block
دستور if-else در لیست های پایتون
در این نمونه، ما از دستور if برای ساختن لیست استفاده میکنیم. شرط این است که اگر عنصری از لیست عدد فردی باشد، جمع ارقامش ذخیره خواهد شد، در غیر این صورت ذخیره نمیشود.
# Explicit function def digitSum(n): dsum = 0 for ele in str(n): dsum += int(ele) return dsum # Initializing list List = [367, 111, 562, 945, 6726, 873] # Using the function on odd elements of the list newList = [digitSum(i) for i in List if i & 1] # Displaying new list print(newList)
خروجی:
[16, 3, 18, 18]
دستور Nested-If (دستور if تو در تو) در پایتون
یک if تو در تو، دستوری با if است که هدف یک دستور if دیگر است. دستورات if تو در تو به معنای قرار دادن یک دستور if در داخل دستور if دیگری است. بله، پایتون اجازه میدهد که دستورات if را درون یکدیگر تو در تو کنیم. یعنی، ما میتوانیم یک دستور if را در داخل دستور if دیگری قرار دهیم.
نوشتار صحیح این دستور به شکل زیر است:
if (condition1): # Executes when condition1 is true if (condition2): # Executes when condition2 is true # if Block is end here # if Block is end here
فلوچارت دستور Nested-If در پایتون
مثالی از دستور Nested if در پایتون
در این مثال، ما شرایط if تو در تو را در کد نشان میدهیم. تمام شرایط if یکی پس از دیگری اجرا خواهند شد.
# python program to illustrate nested If statement i = 10 if (i == 10): # First if statement if (i < 15): print("i is smaller than 15") # Nested - if statement # Will only be executed if statement above # it is true if (i < 12): print("i is smaller than 12 too") else: print("i is greater than 15")
خروجی:
i is smaller than 15 i is smaller than 12 too
نردبان if-elif-else در پایتون
در اینجا، کاربر میتواند بین چندین گزینه تصمیم بگیرد. دستورات if از بالا به پایین اجرا میشوند. به محض اینکه یکی از شرایط کنترل کننده if درست باشد، دستور مرتبط با آن if اجرا میشود و بقیه نردبان دور زده میشود. اگر هیچ یک از شرایط درست نباشد، در آن صورت دستور else نهایی اجرا خواهد شد.
نوشتار صحیح دستور
if (condition): statement elif (condition): statement . . else: statement
فلوچارت دستور if-elif-else در پایتون
مثالی از نردبان if-elif-else در پایتون
در این مثال، چگونگی استفاده از یک شرط if تکی، چندین شرط elif و یک شرط else را نشان میدهیم.
# Python program to illustrate if-elif-else ladder #!/usr/bin/python i = 20 if (i == 10): print("i is 10") elif (i == 15): print("i is 15") elif (i == 20): print("i is 20") else: print("i is not present")
خروجی:
i is 20
دستور if خلاصه
هرگاه فقط یک دستور برای اجرا در داخل بلوک if وجود داشته باشد، میتوان از if به شکل خلاصه آن استفاده کرد. در این شرایط دستور بدنه if میتواند در همان خطی که دستور if قرار دارد، نوشته شود.
نحوه نوشتار دستور
if condition: statement
مثالی از if خلاصه در پایتون
در مثال داده شده، ما شرطی داریم که اگر عدد کمتر از ۱۵ باشد، کد بعدی اجرا خواهد شد.
# Python program to illustrate short hand if i = 10 if i < 15: print("i is less than 15")
خروجی:
i is less than 15
دستور if-else خلاصه
این روش میتواند برای نوشتن دستورات if-else در یک خط وقتی که فقط یک دستور در هر دو بلوک if و else نیاز است، استفاده شود.
نوشتار صحیح دستور
statement_when_True if condition else statement_when_False
مثالی از if-else خلاصه در پایتون
در مثال داده شده، اگر عدد داده شده به متغیر i از ۱۵ کوچکتر باشد، عبارت True چاپ میشود، در غیر این صورت عبارت False چاپ خواهد شد. (در این مثال، True چاپ خواهد شد)
# Python program to illustrate short hand if-else i = 10 print(True) if i < 15 else print(False)
خروجی:
True
در این مقاله، ما تمام حالات عبارات if-else را پوشش داده ایم. عبارات شرطی یک مفهوم بسیار مهم در برنامه نویسی هستند زیرا در حلقه ها و بسیاری از برنامه ها استفاده میشوند. بسته به نیاز خود میتوانید از هر یک از شکلهای if-else استفاده کنید.