آموزش پایتون - دستور if-else
دستور if else در پایتون
دستور if-else در پایتون برای اجرای یک بلوک کد در زمانی که شرط موجود در دستور if درست (true) است، و اجرای بلوک دیگری از کد در زمانی که شرط نادرست (false) است، استفاده میشود.
سنتکس دستور if-else
سنتکس دستور if-else در پایتون به صورت زیر است −
if boolean_expression:
# code block to be executed
# when boolean_expression is true
else:
# code block to be executed
# when boolean_expression is false
اگر عبارت بولین به TRUE ارزیابی شود، دستور یا دستورات داخل بلوک if اجرا میشوند؛ در غیر این صورت، دستورات بلوک else اجرا خواهند شد.
فلوچارت دستور if-else
این فلوچارت نحوه استفاده از دستور if-else را نشان میدهد −

اگر expr برابر با True باشد، بلوک دستورات stmt1, 2, 3 اجرا میشود و سپس جریان پیشفرض برنامه با stmt7 ادامه مییابد. اما اگر expr برابر با False باشد، بلوک دستورات stmt4, 5, 6 اجرا شده و سپس جریان پیشفرض ادامه پیدا میکند.
پیادهسازی فلوچارت بالا در پایتون به صورت زیر است −
if expr==True:
stmt1
stmt2
stmt3
else:
stmt4
stmt5
stmt6
Stmt7
مثال دستور if-else در پایتون
بیاین استفاده از دستورات if-else را با مثال زیر درک کنیم. در اینجا، متغیر age میتواند مقادیر مختلفی بگیرد. اگر عبارت age > 18 درست باشد، پیام eligible to vote (واجد شرایط برای رأیدهی) نمایش داده میشود؛ در غیر این صورت پیام not eligible to vote (غیرواجد شرایط برای رأیدهی) به نمایش درمیآید. فلوچارت زیر این منطق را نشان میدهد −

حال، پیادهسازی فلوچارت بالا در پایتون را ببینیم.
age=25
print ("age: ", age)
if age >=18:
print ("eligible to vote")
else:
print ("not eligible to vote")
با اجرای این کد، خروجی زیر را دریافت خواهید کرد −
age: 25
eligible to vote
برای تست کردن بلوک else، مقدار age را به 12 تغییر دهید و کد را دوباره اجرا کنید.
age: 12
not eligible to vote
دستور if elif else در پایتون
دستور if elif else به شما این امکان را میدهد که چند عبارت را برای TRUE بررسی کنید و به محض اینکه یکی از شرطها برابر با TRUE ارزیابی شد، بلوک کد مربوط به آن را اجرا کنید.
مشابه بلوک else، استفاده از بلوک elif نیز اختیاری است. با این حال، یک برنامه تنها میتواند شامل یک بلوک else باشد، در حالی که پس از یک بلوک if میتوان تعداد دلخواهی از بلوکهای elif داشت.
سنتکس دستور if elif else در پایتون
if expression1:
statement(s)
elif expression2:
statement(s)
elif expression3:
statement(s)
else:
statement(s)
دستور if elif else چگونه کار میکند؟
کلمه کلیدی elif شکل کوتاه شده else if است. این دستور اجازه میدهد منطق برنامه به صورت آبشاری از دستورات elif بعد از اولین دستور if مرتب شود. اگر اولین دستور if به false ارزیابی شود، دستورات elif بعدی یکی پس از دیگری ارزیابی میشوند و در صورت برقرار بودن هر کدام، از ساختار آبشاری خارج میشود.
آخرین بخش در این ساختار آبشاری، بلوک else است که وقتی همه شرطهای قبلی if/elif برقرار نباشند، وارد عمل میشود.
مثال
فرض کنید پلههای تخفیف مختلفی برای یک خرید وجود دارد −
-
۲۰٪ برای مبالغ بیش از ۱۰۰۰۰،
-
۱۰٪ برای مبالغ بین ۵۰۰۰ تا ۱۰۰۰۰،
-
۵٪ اگر مبلغ بین ۱۰۰۰ تا ۵۰۰۰ باشد.
-
بدون تخفیف اگر مبلغ کمتر از ۱۰۰۰ باشد.
فلوچارت زیر این شرایط را نشان میدهد −

میتوانیم کد پایتون برای منطق بالا را با دستورات if-else بنویسیم −
amount = 2500
print('Amount = ',amount)
if amount > 10000:
discount = amount * 20 / 100
else:
if amount > 5000:
discount = amount * 10 / 100
else:
if amount > 1000:
discount = amount * 5 / 100
else:
discount = 0
print('Payable amount = ',amount - discount)
مقدار amount را روی ۸۰۰، ۲۵۰۰، ۷۵۰۰ و ۱۵۰۰۰ تنظیم کنید تا تمام شرایط ممکن را تست کنید. خروجیها متناسب با آن تغییر خواهند کرد −
Amount: 800
Payable amount = 800
Amount: 2500
Payable amount = 2375.0
Amount: 7500
Payable amount = 6750.0
Amount: 15000
Payable amount = 12000.0
اگرچه این کد کاملاً درست کار خواهد کرد، اما اگر به افزایش سطح توفررفتگی (Indentation) در هر دستور if و else نگاه کنید، متوجه میشوید که در صورت وجود شرایط بیشتر، مدیریت کد دشوار خواهد شد.
مثال دستور if elif else در پایتون
دستور elif خوانایی و درک کد را آسانتر میکند. در ادامه، کد پایتون برای همان منطق قبلی اما با استفاده از دستورات if elif else آورده شده است −
amount = 2500
print('Amount = ',amount)
if amount > 10000:
discount = amount * 20 / 100
elif amount > 5000:
discount = amount * 10 / 100
elif amount > 1000:
discount = amount * 5 / 100
else:
discount=0
print('Payable amount = ',amount - discount)
خروجی کد بالا به صورت زیر است −
Amount: 2500
Payable amount = 2375.0
پیشرفت مطالعه: وضعیت خواندهشدن این درس فقط در همین مرورگر ذخیره میشود؛ بدون نیاز به حساب کاربری.