دستور شرطی چیست؟
یک دستور شرطی در پایتون محاسبات و عملیات مختلف را، بسته به ارزیابی قیدهای بولی که به true یا false منجر میشود انجام میدهد. دستورات شرطی در پایتون بوسیله دستور IF مدیریت میشوند.
دستور IF چیست؟ چگونه باید از آن استفاده کرد؟
در پایتون، دستور If برای تصمیم گیری استفاده میشود. بدنه آن تنها در صورتی اجرا میشود که شرط آن برقرار باشد.
وقتی که یک شرط برقرار باشد و شرط دیگر برقرار نباشد، از دستور if استفاده میکنید.
ساختار
if expression Statement else Statement
اجازه دهید یک مثال باهم ببینیم:
# #Example file for working with conditional statement # def main(): x,y =2,8 if(x < y): st= "x is less than y" print(st) if __name__ == "__main__": main()
- خط 5: دو متغیر تعریف میکنیم: x,y=2,8
- خط 7: دستور if شرط x<y را بررسی میکند که در این مورد درست است.
- خط 8: متغیر st به مقدار «x is less than y» ست میشود.
- خط 9: این خط print st خروجی متغیر st را چاپ میکند که برابر است با: «x is less than y».
هنگامیکه شرط IF برآورده نشود، چه اتفاقی میافتد؟
در این مرحله، خواهیم دید که در صورت برآورده نشدن شرط if چه اتفاقی خواهد افتاد.
- خط 5: دو متغیر x,y=8,4 تعریف میکنیم
- خط 7: دستور if شرط x<y را بررسی میکند که در این مورد نادرست است.
- خط 8: متغیر st به عبارت «x is less than y» ست نمیشود.
- حط 9: دستور print st : تلاش میکند تا متغیری را که هرگز اعلان نشده را چاپ کند، در نتیجه با خطا مواجه میشویم.
نحوه استفاده از شرط ELSE
شرط else معمولاً زمانی بکار میرود که بخواهیم یک شرط را برپایه شرط دیگر قضاوت کنیم. اگر یک شرط برقرار نبود، آنگاه باید شرط دیگر برآورده شود.
مثال
# #Example file for working with conditional statement # def main(): x,y =8,4 if(x < y): st= "x is less than y" else: st= "x is greater than y" print (st) if __name__ == "__main__": main()
- خط 5: دو متغیر x,y=8,4 تعریف میکنیم.
- خط 7: دستور if شرط x<y را بررسی میکند که در این مورد نادرست است.
- خط 9: کنترل جریان برنامه در اختیار شرط else قرار میگیرد.
- خط 10: متغیر st برابر میشود با «x is greater than y».
- خط 11: خط print st مقدار متغیر st را به خروجی میفرستد که برابر است با: «x is greater than y».
چه زمانی شرط ELSE عمل نخواهد کرد
موقعیت های فراوانی وجود دارد که در آنها شرط else نتیجه مطلوب را به همراه نخواهد داشت. ممکن است به دلیل وجود یک اشتباه منطقی در برنامه خروجی نادرست چاپ شود. در بیشتر موارد، زمانی این اتفاق میافتد ک شما مجبور هستید بیش از دو دستور یا شرط را در برنامه تان برآورده کنید. با یک مثال بهتر میتوانیم این مفهوم را درک کنیم.
در اینجا هردو متغیر برابر هستند (8,8) و خروجی برنامه «x is greater than y» است، که نادرست است. این بدین خاطر است که ابتدا شرط if بررسی میشود، و اگر نادرست باشد، آنگاه شرط دوم (شرط else) به صورت پیش فرض چاپ میشود. در مرحله بعدی، خواهیم دید که این خطا را چگونه باید تصحیح کنیم.
# #Example file for working with conditional statement # def main(): x,y =8,8 if(x < y): st= "x is less than y" else: st= "x is greater than y" print(st) if __name__ == "__main__": main()
نحوه استفاده از شرط ELIF
برای تصحیح خطای مذکور که شرط else مسبب آن بود، از دستور «elif» استفاده میکنیم. با استفاده از شرط elif، به برنامه اعلام خواهید کرد که در صورت نادرست بودن دیگر شرایط، شرط یا احتمال سوم را چاپ کند.
# #Example file for working with conditional statement # def main(): x,y =8,8 if(x < y): st= "x is less than y" elif (x == y): st= "x is same as y" else: st="x is greater than y" print(st) if __name__ == "__main__": main()
- خط 5: دو متغیر x,y=8,8 تعریف میکنیم.
- خط 7: دستور if شرط x<y را بررسی میکند که در این مورد نادرست است.
- خط 10: کنترل جریان برنامه به دست شرط elif میافتد. این شرط x==y را بررسی میکند که درست است.
- خط 11: متغیر st به مقدار «x is same as y» ست میشود.
- خط 15: کنترل جریان برنامه از دستور if خارج میشود (به دستور else داده نمیشود). و متغیر st چاپ میشود. خروجی «x is same as y» صحیح است.
نحوه اجرای دستورات شرطی با کمترین میزان کد
در این مرحله، خواهیم دید که چگونه دستور شرطی را خلاصه کنیم. به جای اجرای کد جداگانه برای هر شرط، میتوان از یک کد تک خطی استفاده کرد.
ساختار
A If B else C
مثال
def main(): x,y = 10,8 st = "x is less than y" if (x < y) else "x is greater than or equal to y" print(st) if __name__ == "__main__": main()
- خط 2: متغیرهای x,y=10,8 را تعریف میکنیم.
- خط 3: اگر x<y باشد، متغیر st به مقدار «x is less than y» ست میشود و یا به مقدار «x is greater than or equal to y» ست میشود. در این مورد x>y است بنابراین متغیر st به مقدار «x is greater than or equal to y» ست میشود.
- خط 4: مقدار متغیر st را چاپ کرده و خروجی صحیح را میدهد.
بجای نوشتن کدهای طولانی برای دستورات شرطی، پایتون شرایطی فراهم کرده تا کد را به فرم کوتاه و فشرده بنویسید.
دستور IF تودرتو
مثال زیر دستور if تودرتو را نشان میدهد.
total = 100 #country = "US" country = "AU" if country == "US": if total <= 50: print("Shipping Cost is $50") elif total <= 100: print("Shipping Cost is $25") elif total <= 150: print("Shipping Costs $5") else: print("FREE") if country == "AU": if total <= 50: print("Shipping Cost is $100") else: print("FREE")
در کد بالا خط 2 را از حالت کامنت خارج کنید و خط 3 را کامنت کنید و کد را مجدداً اجرا کنید.
دستور Switch
دستور switch یک دستور چند شاخه ای است که مقدار یک متغیر را با مقادیر مشخص شده در دستورات case مقایسه میکند.
زبان پایتون دستور switch ندارد.
پایتون از نگاشت دیکشنری برای پیاده سازی دستور Switch استفاده میکند.
مثال
function(argument){ switch(argument) { case 0: return "This is Case Zero"; case 1: return " This is Case One"; case 2: return " This is Case Two "; default: return "nothing"; }; };
کد معادل پایتون برای کد فوق برابر است با:
def SwitchExample(argument): switcher = { 0: " This is Case Zero ", 1: " This is Case One ", 2: " This is Case Two ", } return switcher.get(argument, "nothing") if __name__ == "__main__": argument = 1 print (SwitchExample(argument))
مثال پایتون 2
کدهای بالا همگی مثال های پایتون 3 بودند، اگر بخوهید آنها را در پایتون 2 اجرا کنید، از کدهای زیر استفاده کنید.
# If Statement #Example file for working with conditional statement # def main(): x,y =2,8 if(x < y): st= "x is less than y" print st if __name__ == "__main__": main() # How to use "else condition" #Example file for working with conditional statement # def main(): x,y =8,4 if(x < y): st= "x is less than y" else: st= "x is greater than y" print st if __name__ == "__main__": main() # When "else condition" does not work #Example file for working with conditional statement # def main(): x,y =8,8 if(x < y): st= "x is less than y" else: st= "x is greater than y" print st if __name__ == "__main__": main() # How to use "elif" condition #Example file for working with conditional statement # def main(): x,y =8,8 if(x < y): st= "x is less than y" elif (x == y): st= "x is same as y" else: st="x is greater than y" print st if __name__ == "__main__": main() # How to execute conditional statement with minimal code def main(): x,y = 10,8 st = "x is less than y" if (x < y) else "x is greater than or equal to y" print st if __name__ == "__main__": main() # Nested IF Statement total = 100 #country = "US" country = "AU" if country == "US": if total <= 50: print "Shipping Cost is $50" elif total <= 100: print "Shipping Cost is $25" elif total <= 150: print "Shipping Costs $5" else: print "FREE" if country == "AU": if total <= 50: print "Shipping Cost is $100" else: print "FREE" #Switch Statement def SwitchExample(argument): switcher = { 0: " This is Case Zero ", 1: " This is Case One ", 2: " This is Case Two ", } return switcher.get(argument, "nothing") if __name__ == "__main__": argument = 1 print SwitchExample(argument)
خلاصه
دستور شرطی در پایتون بوسیله دستور if انجام میگیرد. روش های متنوعی را ملاحظه کردیم که میتوان از دستورات شرطی مانند if و else استفاده کرد.
- شرط if: زمانی که بخواهید دستوری را چاپ کنید استفاده میشود.
- شرط else: زمانی استفاده میشود ک بخواهید یک دستور را در وضعیتی چاپ کنید که یک شرط شما برآورده نشود.
- شرط elif: زمانی استفاده میشود که احتمال سومی به عنوان خروجی وجود داشته باشد. میتوان از چندین شرط elif برای احتمالات چهارم، پنجم، ششم در کدتان استفاده کنید.
منبع: ترجمه از سایت guru99.com
در جلسه بعدی آموزش پایتون با ما همراه باشید. همچنین اگر علاقمند بودید آموزش ++C و آموزش C را هم مطالعه کنید.
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.
پایتون ورژن 3.10 دستور match case داره که دقیقا مثل switch در زبان های برنامه نویسی دیگه هست.