دستورات شرطی در پایتون — به زبان ساده
در این مطلب، دستورات شرطی در پایتون مورد بررسی قرار گرفتهاند. در واقع، روش تصمیمگیری (شرطی) با استفاده از اشکال گوناگون دستور if..else همراه با مثالهای متعدد، تشریح شده است.
دستورات شرطی در پایتون
زمانی به تصمیمگیری نیاز است که کاربر بخواهد یک کد صرفا در صورتی اجرا شود که یک شرط خاص صادق باشد. دستورات شرطی در پایتون برای تصمیمگیری مورد استفاده قرار میگیرند. if…elif…else از جمله دستورات شرطی پایتون است.
دستور if در پایتون
در قطعه کد زیر، نحو دستور if، در پایتون نمایش داده شده است.
1if test expression:
2 statement(s)
در کد بالا، برنامه test expression را ارزیابی میکند و تنها در صورتی که True باشد، آن را اجرا میکند. اگر حاصل ارزیابی test expression برابر با False باشد، دستور اجرا نمیشود. در پایتون، بدنه دستور if به وسیله «دندانهگذاری» (Indentation) نمایش داده میشود. بدنه با یک دندانه (تورفتگی) آغاز میشود و اولین خط بدون دندانه، پایان دستور را نشان میدهد. پایتون مقادیر غیر صفر را به عنوان True در نظر میگیرد. در این زبان، None و 0 به عنوان False در نظر گرفته میشوند.
فلوچارت دستور if در پایتون
مثال از دستور if...else در پایتون
1# If the number is positive, we print an appropriate message
2
3num = 3
4if num > 0:
5 print(num, "is a positive number.")
6print("This is always printed.")
7
8num = -1
9if num > 0:
10 print(num, "is a positive number.")
11print("This is also always printed.")
خروجی حاصل از اجرای برنامه بالا، به صورت زیر خواهد بود:
3 is a positive number This is always printed This is also always printed.
در مثال بالا، num > 0 عبارت تست است. بدنه if تنها در صورتی اجرا میشود که حاصل ارزیابی True باشد. هنگامی که متغیر num برابر با ۳ است، عبارت تست true خواهد بود و بدنه درون if اجرا میشود. اگر متغیر num برابر با ۱- باشد، عبارت تست غلط است و از بدنه درون if پرش میشود. عبارت ()print، بیرون از بلوک if قرار میگیرد (بدون تورفتگی). از این رو، بدون توجه به عبارت تست، اجرا میشود.
دستور if...else پایتون
در ادامه، دستور شرطی if...else مورد بررسی قرار میگیرد.
نحو دستور if...else
نحو دستور if...else در قطعه کد زیر، نمایش داده شده است.
1if test expression:
2 Body of if
3else:
4 Body of else
دستور if..else عبارت test expression را ارزیابی و بدنه if را تنها هنگامی اجرا میکند که شرایط تست True است. اگر شرط False بود، بدنه else اجرا میشود. از دندانهگذاری برای جداسازی بلوکها استفاده میشود.
مثالی از دستور if...else در پایتون
1# Program checks if the number is positive or negative
2# And displays an appropriate message
3
4num = 3
5
6# Try these two variations as well.
7# num = -5
8# num = 0
9
10if num >= 0:
11 print("Positive or Zero")
12else:
13 print("Negative number")
در مثال بالا، هنگامی که num برابر با ۳ باشد، عبارت تست true است، بنابراین بدنه if اجرا میشود و از روی بدنه else پرش میشود. اگر num برابر با ۵- باشد، عبارت تست false محسوب میشود و بنابراین بدنه else اجرا و if بدون اجرا رها میشود. اگر num برابر با ۰ باشد، عبارت تست صحیح (true) خواهد بود و بدنه if اجرا میشود و بدنه else بدون اجرا شدن رها میشود.
عبارت if...elif...else در پایتون
در ادامه، نحو دستور if...elif...else در پایتون آموزش داده شده است.
نحو دستور if...elif...else
1if test expression:
2 Body of if
3elif test expression:
4 Body of elif
5else:
6 Body of else
elif عبارت کوتاه شده else if است. این دستور امکان بررسی چندین عبارت را میدهد. اگر شرط برای if غلط باشد، شرایط بلوک elif را چک میکند. اگر همه شرطها False باشد، بدنه else اجرا میشود. با توجه به شرط، تنها یک بلوک در میان چندین بلوک if...elif...else مطابق با شرط اجرا خواهد شد. بلوک if تنها میتواند یک بلوک else داشته باشد. اما، میتواند چندین بلوک elif داشته باشد.
فلوچارت دستور if...elif...else
مثالی از if...elif...else
1# In this program,
2# we check if the number is positive or
3# negative or zero and
4# display an appropriate message
5
6num = 3.4
7
8# Try these two variations as well:
9# num = 0
10# num = -4.5
11
12if num > 0:
13 print("Positive number")
14elif num == 0:
15 print("Zero")
16else:
17 print("Negative number")
هنگامی که متغیر num مثبت باشد، Positive number چاپ میشود. اگر num مساوی ۰ باشد، صفر چاپ میشود. اگر num منفی باشد، عدد منفی چاپ میشود.
دستورات if تو در تو در پایتون
میتوان دستور if...elif...else را درون یک دستور if...elif...else دیگر نوشت. در برنامهنویسی کامپیوتری، به چنین کدهایی «تو در تو» (Nested Codes) گفته میشود. هر تعدادی از این عبارات را میتوان درون دیگری به صورت توکار قرار داد.
تورفتگی (دندانه) تنها راه فهمیدن سطح تو در تویی است. این کار ممکن است پیچیده باشد، بنابراین حدالامکان باید از تو در تو نویسی کدها اجتناب کرد.
1# In this program, we input a number
2# check if the number is positive or
3# negative or zero and display
4# an appropriate message
5# This time we use nested if
6
7num = float(input("Enter a number: "))
8if num >= 0:
9 if num == 0:
10 print("Zero")
11 else:
12 print("Positive number")
13else:
14 print("Negative number")
خروجی قطعه کد بالا برای ورودی 5 به صورت زیر است:
Enter a number: 5 Positive number
خروجی قطعه کد بالا برای ورودی -1 به صورت زیر است:
Enter a number: -1 Negative number
خروجی قطعه کد بالا برای ورودی 0 به صورت زیر است:
Enter a number: 0 Zero
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی پایتون Python
- آموزش تکمیلی برنامهنویسی پایتون
- مجموعه آموزشهای دادهکاوی و یادگیری ماشین
- زبان برنامهنویسی پایتون (Python) — از صفر تا صد
- یادگیری علم داده (Data Science) با پایتون — از صفر تا صد
- آموزش پایتون (Python) — مجموعه مقالات جامع وبلاگ فرادرس
- کاربرد پایتون چیست و با آن چه میتوان کرد؟ | راهنمای کاربردی
^^
سلام ممنون از مطالب مفیدتون
اگر بخواهیم از ترتل از کاربر رمز را گرفته اگر درست بود وارد صفحه ترتل شود و یک نقاشی بکشد و اگر غلط بود
از صفحه خارج شود چطور باید کد هاش رو بزنیم؟
سلام اونجایی که نوشته (خروجی قطعه کد بالا برای ورودی ۲ به صورت زیر است) بعد زیرش ورودی منفی یک دادید اصلاحش کنید
با سلام و احترام؛
صمیمانه از همراهی شما با مجله فرادرس و ارائه بازخورد سپاسگزاریم.
این مورد اصلاح شد.
برای شما آرزوی سلامتی و موفقیت داریم.
سلام من یه سوال داشتم که این بود که من میخوام اینو به پایتون بفهمونم باید چه کار کنم این پایین رومیگم
اگر از عدد 9 بیشتر بود منهای نه کن اگر نه نکن
ممنون میشم کد رو به ایمیلم ارسال کنید ممنون از سایت خوبتون عالی هست .
d=5
if d
سلام یه سوال داشتم میخواستم برای دستور شرطی میان اندیس ها بپرسم ک چطوری هست؟ به یک سوال که بر خوردم اینطوری بود که گفته بود متنی از کاربر دریافت کند و اگر به اندازه کافی بود(رشته بیشتر از 7 کاراکتر باشد) کاراکتر هفتم را نمایش بده در غیر اینصورت پیغام مناسب نمایش بده میخوام بدونم که چطوری میشه شرط رو بین اندیس استفاده کرد. با تشکر♥