چالش روزانه · ۲۲ مهر ۱۴۰۵
چالش پایتون ۱۱: عوض کردن متغیر حلقه
قبل از اجرای کد، خروجی آن را پیشبینی کن. حدس نزن؛ خط به خط فکر کن پایتون چه میکند.
for i in range(3):
print(i, end=" ")
i = 10نمایش پاسخ و توضیح
پاسخ درست: گزینهٔ ب — 0 1 2
گام به گام
حلقهٔ for در پایتون شمارندهای ندارد که با i کنترل شود. range(3) دنبالهٔ 0, 1, 2 را میدهد و for در هر دور، عضو بعدی را از همان دنباله برمیدارد و در i میگذارد.
- دور اول:
iمیشود0، چاپ میشود، بعدi = 10. اما این فقط متغیرiرا عوض میکند، نه جای ما درrangeرا. - دور دوم:
forعضو بعدی، یعنی1، را درiمیگذارد و10بیاثر از بین میرود. - دور سوم: همینطور با
2.
جواب: 0 1 2
خودتان ببینید
for i in range(3):
print("اول دور:", i)
i = 10
print("آخر دور:", i)
اگر واقعاً میخواهید زودتر بیرون بیایید
در زبانهایی مثل C یا جاوا، for (i = 0; i < 3; i++) با خود i کنترل میشود و عوض کردنش حلقه را جابهجا میکند. در پایتون نه. برای خروج زودهنگام از break استفاده کنید. اگر واقعاً میخواهید شمارنده را دستی کنترل کنید، while بنویسید:
i = 0
while i < 3:
print(i, end=" ")
i = 10 # اینجا واقعاً حلقه تمام میشود
نکتهٔ کاربردی: عوض کردن متغیر حلقهٔ for روی تعداد دورها اثری ندارد. پس اگر چنین خطی در کدتان دیدید، احتمالاً منظورتان break بوده. (درس حلقهٔ for · درس حلقهٔ while)
حالا خودت اجرا کن و تغییرش بده
for i in range(3):
print(i, end=" ")
i = 10