یک مثال کامل از ابتدا تا کد نهایی
در این درس، مسئلهای کمی پیچیدهتر را از صفر تا کد نهایی پیش میبریم: تشخیص اینکه یک سال میلادی، کبیسه است یا نه. قانون سال کبیسه این است: سالی کبیسه است که بر ۴ بخشپذیر باشد، مگر اینکه بر ۱۰۰ هم بخشپذیر باشد؛ اما اگر بر ۴۰۰ هم بخشپذیر باشد، باز هم کبیسه است.
ابتدا الگوریتم را بهصورت مرحلهای مینویسیم:
- شروع
- دریافت سال
- اگر سال بر ۴۰۰ بخشپذیر است: کبیسه است
- وگرنه اگر سال بر ۱۰۰ بخشپذیر است: کبیسه نیست
- وگرنه اگر سال بر ۴ بخشپذیر است: کبیسه است
- وگرنه: کبیسه نیست
- نمایش نتیجه
- پایان
در فلوچارت، این الگوریتم با سه لوزی پشتسرهم نمایش داده میشود که هر کدام یک شرط بخشپذیری را بررسی میکنند. حالا این ساختار را مستقیماً به کد پایتون تبدیل میکنیم:
def is_leap_year(year):
if year % 400 == 0:
return True
elif year % 100 == 0:
return False
elif year % 4 == 0:
return True
else:
return False
for test_year in [2000, 1900, 2024, 2023]:
result = "کبیسه است" if is_leap_year(test_year) else "کبیسه نیست"
print(f"{test_year}: {result}")توجه کنید که ترتیب بررسی شرطها بسیار مهم است؛ اگر ابتدا شرط بخشپذیری بر ۴ را بررسی میکردیم، هرگز به بررسی استثنای ۱۰۰ و ۴۰۰ نمیرسیدیم و نتیجه برای سالهایی مثل ۱۹۰۰ اشتباه میشد. همین مثال نشان میدهد چرا ردیابی دستی الگوریتم پیش از نوشتن کد (که در فصل دوم آموختیم)، ابزار بسیار مهمی برای پیدا کردن چنین خطاهای منطقی است.