ساختار های IF ، ELSE ، ELIF ، IF تو در تو و switch case در پایتون
ساختار شرطی در پایتون شرط خاصی را ارزیابی می کند که درست یا نادرست است و بر اساس آن محاسبات یا اقدامات مختلفی را انجام می دهد. شرط ها توسط ساختار IF در پایتون انجام می شود. در این آموزش خواهیم دید که چگونه می توان عبارات شرطی را در پایتون به کار برد.
- دستور if چیست؟ چگونه از آن استفاده کنیم؟
- چه اتفاقی می افتد که ” شرط if” برآورده نشود
- نحوه استفاده از “شرط else”
- وقتی “شرط else” کار نکند
- نحوه استفاده از شرط “elif”
- نحوه اجرای جمله شرطی با حداقل کد
- ساختار if تو در تو
- ساختار switch
دستور 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()
- کد خط ۵: دو متغیر x,y=2,8 را تعریف می کنیم.
- کد خط ۷: دستور if عبارت x <y که صحیح است ، بررسی می کند.
- کد خط ۸: متغیر st برابر با ” x is less than y.” تنظیم شده است.
- کد خط ۹: مقدار st را چاپ می کند.
چه اتفاقی می افتد که ” شرط if” برآورده نشود
در این مرحله ، خواهیم دید که اگر ” شرط if” برآورده نشود چه اتفاقی می افتد.
- کد خط ۵: دو متغیر x,y=8,4 را تعریف می کنیم.
- کد خط ۷: دستور if عبارت x <y را بررسی کند نادرست است.
- کد خط ۸: متغیر st برابر با ” x is less than y.” تنظیم شده است.
- کد خط ۹: مقدار 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()
- کد خط ۵: دو متغیر x,y=8,4 را تعریف می کنیم.
- کد خط ۷: دستور if عبارت x <y را بررسی می کند که در این حالت نادرست است.
- کد خط ۹: جریان کنترل برنامه به شرایط دیگر می رود.
- کد خط ۱۰: متغیر st برابر با ” x is greater than y.” تنظیم شده است.
- کد خط ۱۱: مقدار متغیر st را چاپ می کند.
وقتی “شرط else” کار نکند
ممکن است موارد بسیاری وجود داشته باشد که “شرط else” نتیجه مطلوب را به شما ندهد و ممکن است نتیجه اشتباه را چاپ کند زیرا در منطق برنامه خطایی رخ داده است. در بیشتر موارد ، این اتفاق می افتد زمانی که مجبورید بیش از دو جمله یا شرط را در یک برنامه بررسی کنید.
مثال زیر به شما در درک این مفهوم کمک خواهد کرد.
در اینجا هر دو متغیر یکسان هستند (۸,۸) و خروجی برنامه ” 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”
برای تصحیح خطای قبلی ایجاد شده می توانیم از عبارت “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()
- کد خط ۵: دو متغیر x,y=8,8 را تعریف می کنیم.
- کد خط ۷: شرط if عبارت x <y را بررسی می کند که در این حالت نادرست است.
- کد خط ۱۰: جریان کنترل برنامه به شرط elif می رود و بررسی می کند که آیا x == y صحیح است یا خیر.
- کد خط ۱۱: متغیر st برابر با ” x is same as y.” تنظیم شده است.
- کد خط ۱۵: جریان کنترل برنامه از دستور 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()
- کد خط ۲: دو متغیر x,y=10,8 را تعریف می کنیم.
- کد خط ۳: اگر x <y باشد st برابر با ” x is less than y” تنظیم می شود در غیر اینصورت برابر با x is greater than or” equal to y” تنظیم می شود.
- کد خط۴: مقدار 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”)
خط ۲ را در کد بالا از حالت کامنت در بیاورید و خط ۳ را کامنت کنید و دوباره کد را اجرا کنید.
ساختار switch
ساختار 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”;
};
};
برای ساختار switch فوق در پایتون
def SwitchExample(argument):
switcher = {
۰: ” This is Case Zero “,
۱: ” This is Case One “,
۲: ” This is Case Two “,
}
return switcher.get(argument, “nothing”)
if __name__ == “__main__”:
argument = 1
print (SwitchExample(argument))
مثال پایتون ۲
در بالا کد ها مثال های پایتون ۳ بودند ، اگر می خواهید در پایتون ۲ اجرا کنید ، لطفا کد زیر را در نظر بگیرید.
# 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 = {
۰: ” This is Case Zero “,
۱: ” This is Case One “,
۲: ” This is Case Two “,
}
return switcher.get(argument, “nothing”)
if __name__ == “__main__”:
argument = 1
print SwitchExample(argument)
خلاصه:
ساختار های شرطی در پایتون با if، if … else و .. پیاده سازی می شوند.
- ” شرط if” – هنگامی که نیاز به چاپ نتیجه دارید وقتی یکی از شرایط درست و دیگری نادرست است ، استفاده می شود.
- “شرط else” – وقتی می خواهید نتیجه ای را چاپ کنید و یکی از شرط ها برآورده نشود ، از آن استفاده می شود.
- “شرط elif” – هنگامی که احتمال سومی دارید به عنوان نتیجه استفاده می شود. می توانید از چندین شرط elif برای احتمال چهارم، پنجم و … استفاده کنید.
- می توانیم با تعریف کلیه ی شروط در یک جمله از حداقل کد برای اجرای جملات شرطی استفاده کنیم.
- شرط if را می توان تو در تو استفاده کرد.
سلام من دارم فاکتوریل درست میکنم اگر بخوام تا ۵۰ بره ایف ها باید ۵۰ تا ایف بنویسم یا از فور میتونم کمک بگیرم
پاسخبرای داشتن یک کد DRY باید حداقل خط کد باشه. پس فور گزینه منطقی تر و درست تریه