چالش روزانه · ۲۲ مهر ۱۴۰۵

چالش پایتون ۷: break وسط range

قبل از اجرای کد، خروجی آن را پیش‌بینی کن. حدس نزن؛ خط به خط فکر کن پایتون چه می‌کند.

mysum = 0
for i in range(5, 11, 2):
    mysum += i
    if mysum == 5:
        break
print(mysum)
خروجی کدام است؟

نمایش پاسخ و توضیح

پاسخ درست: گزینهٔ الف — 5

ردگیری

range(5, 11, 2) اعداد 5, 7, 9 را تولید می‌کند (۱۱ جزو آن نیست).

دور i mysum mysum == 5؟
۱ 5 0 + 5 = 5 ✅ ← break

همان دور اول mysum می‌شود ۵، شرط برقرار است و break حلقه را فوراً تمام می‌کند. دورهای ۷ و ۹ هیچ‌وقت اجرا نمی‌شوند.

خروجی: 5

بدون break جواب 5 + 7 + 9 = 21 بود. (گزینهٔ ۲۱ برای کسانی است که break را ندیدند!)

حالا خودت اجرا کن و تغییرش بده

mysum = 0
for i in range(5, 11, 2):
    mysum += i
    if mysum == 5:
        break
print(mysum)