دستورات شرطی در پایتون — به زبان ساده

۱۳۶۳۵ بازدید
آخرین به‌روزرسانی: ۲۷ اردیبهشت ۱۴۰۲
زمان مطالعه: ۳ دقیقه
دستورات شرطی در پایتون — به زبان ساده

در این مطلب، دستورات شرطی در پایتون مورد بررسی قرار گرفته‌اند. در واقع، روش تصمیم‌گیری (شرطی) با استفاده از اشکال گوناگون دستور 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

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

بر اساس رای ۴۵ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Programiz
۶ دیدگاه برای «دستورات شرطی در پایتون — به زبان ساده»

سلام ممنون از مطالب مفیدتون
اگر بخواهیم از ترتل از کاربر رمز را گرفته اگر درست بود وارد صفحه ترتل شود و یک نقاشی بکشد و اگر غلط بود
از صفحه خارج شود چطور باید کد هاش رو بزنیم؟

سلام اونجایی که نوشته (خروجی قطعه کد بالا برای ورودی ۲ به صورت زیر است) بعد زیرش ورودی منفی یک دادید اصلاحش کنید

با سلام و احترام؛

صمیمانه از همراهی شما با مجله فرادرس و ارائه بازخورد سپاس‌گزاریم.

این مورد اصلاح شد.

برای شما آرزوی سلامتی و موفقیت داریم.

سلام من یه سوال داشتم که این بود که من میخوام اینو به پایتون بفهمونم باید چه کار کنم این پایین رومیگم
اگر از عدد 9 بیشتر بود منهای نه کن اگر نه نکن
ممنون میشم کد رو به ایمیلم ارسال کنید ممنون از سایت خوبتون عالی هست .

سلام یه سوال داشتم میخواستم برای دستور شرطی میان اندیس ها بپرسم ک چطوری هست؟ به یک سوال که بر خوردم اینطوری بود که گفته بود متنی از کاربر دریافت کند و اگر به اندازه کافی بود(رشته بیشتر از 7 کاراکتر باشد) کاراکتر هفتم را نمایش بده در غیر اینصورت پیغام مناسب نمایش بده میخوام بدونم که چطوری میشه شرط رو بین اندیس استفاده کرد. با تشکر♥

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *