برنامه نویسی ۱۳۳۵۲ بازدید

در این مطلب، دستورات شرطی در پایتون مورد بررسی قرار گرفته‌اند. در واقع، روش تصمیم‌گیری (شرطی) با استفاده از اشکال گوناگون دستور if..else همراه با مثال‌های متعدد، تشریح شده است.

دستورات شرطی در پایتون

زمانی به تصمیم‌گیری نیاز است که کاربر بخواهد یک کد صرفا در صورتی اجرا شود که یک شرط خاص صادق باشد. دستورات شرطی در پایتون برای تصمیم‌گیری مورد استفاده قرار می‌گیرند. if…elif…else از جمله دستورات شرطی پایتون است.

دستور if در پایتون

در قطعه کد زیر، نحو دستور if، در پایتون نمایش داده شده است.

if test expression:
    statement(s)

در کد بالا، برنامه test expression را ارزیابی می‌کند و تنها در صورتی که True باشد، آن را اجرا می‌کند. اگر حاصل ارزیابی test expression برابر با False باشد، دستور اجرا نمی‌شود. در پایتون، بدنه دستور if به وسیله «دندانه‌گذاری» (Indentation) نمایش داده می‌شود. بدنه با یک دندانه (تورفتگی) آغاز می‌شود و اولین خط بدون دندانه، پایان دستور را نشان می‌دهد. پایتون مقادیر غیر صفر را به عنوان True در نظر می‌گیرد. در این زبان، None و 0 به عنوان False در نظر گرفته می‌شوند.

فلوچارت دستور if در پایتون

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

مثال از دستور if...else در پایتون

# If the number is positive, we print an appropriate message

num = 3
if num > 0:
    print(num, "is a positive number.")
print("This is always printed.")

num = -1
if num > 0:
    print(num, "is a positive number.")
print("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 در قطعه کد زیر، نمایش داده شده است.

if test expression:
    Body of if
else:
    Body of else

دستور if..else عبارت test expression را ارزیابی و بدنه if را تنها هنگامی اجرا می‌کند که شرایط تست True است. اگر شرط False بود، بدنه else اجرا می‌شود. از دندانه‌گذاری برای جداسازی بلوک‌ها استفاده می‌شود.

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

مثالی از دستور if...else در پایتون

# Program checks if the number is positive or negative
# And displays an appropriate message

num = 3

# Try these two variations as well. 
# num = -5
# num = 0

if num >= 0:
    print("Positive or Zero")
else:
    print("Negative number")

در مثال بالا، هنگامی که num برابر با ۳ باشد، عبارت تست true است، بنابراین بدنه if اجرا می‌شود و از روی بدنه else پرش می‌شود. اگر num برابر با ۵- باشد، عبارت تست false محسوب می‌شود و بنابراین بدنه else اجرا و if بدون اجرا رها می‌شود. اگر num برابر با ۰ باشد، عبارت تست صحیح (true) خواهد بود و بدنه if اجرا می‌شود و بدنه else بدون اجرا شدن رها می‌شود.

عبارت if...elif...else در پایتون

در ادامه، نحو دستور if...elif...else در پایتون آموزش داده شده است.

نحو دستور if...elif...else

if test expression:
    Body of if
elif test expression:
    Body of elif
else: 
    Body of else

elif عبارت کوتاه شده else if است. این دستور امکان بررسی چندین عبارت را می‌دهد. اگر شرط برای if غلط باشد، شرایط بلوک elif را چک می‌کند. اگر همه شرط‌ها False باشد، بدنه else اجرا می‌شود. با توجه به شرط، تنها یک بلوک در میان چندین بلوک if...elif...else مطابق با شرط اجرا خواهد شد. بلوک if تنها می‌تواند یک بلوک else داشته باشد. اما، می‌تواند چندین بلوک elif داشته باشد.

فلوچارت دستور if...elif...else

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

مثالی از if...elif...else

# In this program, 
# we check if the number is positive or
# negative or zero and 
# display an appropriate message

num = 3.4

# Try these two variations as well:
# num = 0
# num = -4.5

if num > 0:
    print("Positive number")
elif num == 0:
    print("Zero")
else:
    print("Negative number")

هنگامی که متغیر num مثبت باشد، Positive number چاپ می‌شود. اگر num مساوی ۰ باشد، صفر چاپ می‌شود. اگر num منفی باشد، عدد منفی چاپ می‌شود.

دستورات if تو در تو در پایتون

می‌توان دستور if...elif...else را درون یک دستور if...elif...else دیگر نوشت. در برنامه‌نویسی کامپیوتری، به چنین کدهایی «تو در تو» (Nested Codes) گفته می‌شود. هر تعدادی از این عبارات را می‌توان درون دیگری به صورت توکار قرار داد. تورفتگی (دندانه) تنها راه فهمیدن سطح تو در تویی است. این کار ممکن است پیچیده باشد، بنابراین حدالامکان باید از تو در تو نویسی کدها اجتناب کرد.

# In this program, we input a number
# check if the number is positive or
# negative or zero and display
# an appropriate message
# This time we use nested if

num = float(input("Enter a number: "))
if num >= 0:
    if num == 0:
        print("Zero")
    else:
        print("Positive number")
else:
    print("Negative number")

خروجی قطعه کد بالا برای ورودی 5   به صورت زیر است:

Enter a number: 5
Positive number

خروجی قطعه کد بالا برای ورودی ‎ -1   به صورت زیر است:

Enter a number: -1
Negative number

خروجی قطعه کد بالا برای ورودی 0   به صورت زیر است:

Enter a number: 0
Zero

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

^^

بر اساس رای ۲۳ نفر
آیا این مطلب برای شما مفید بود؟
شما قبلا رای داده‌اید!
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.

«الهام حصارکی»، فارغ‌التحصیل مقطع کارشناسی ارشد مهندسی فناوری اطلاعات، گرایش سیستم‌های اطلاعات مدیریت است. او در زمینه هوش مصنوعی و داده‌کاوی، به ویژه تحلیل شبکه‌های اجتماعی، فعالیت می‌کند.

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

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

  • علی راستین — says: ۱۶ آبان، ۱۴۰۰ در ۵:۳۲ ب٫ظ

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

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

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد.