حلقه for (For Loops)
حلقه for یعنی «برای هر عضوِ یک دنباله (Sequence) تکرار کن». دنباله می تواند لیست، تاپل، مجموعه، دیکشنری یا رشته باشد. مثل حضور و غیاب کلاس؛ برای هر اسم یک بار صدا می زنیم.
حلقه for روی لیست
در for روی هر عضو حرکت می کنیم؛ نیازی به شمارنده جدا نیست.
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
نکته: این for با زبان های دیگر فرق دارد؛ اینجا مستقیم روی اعضا می چرخیم.
حلقه for روی رشته (String)
رشته هم دنباله کاراکترهاست؛ پس می توانیم روی حروف بگردیم.
for x in "banana":
print(x)
توقف زودهنگام با break
با break می توانیم حلقه را همان جا تمام کنیم.
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
if x == "banana":
break
fruits = ["apple", "banana", "cherry"]
for x in fruits:
if x == "banana":
break
print(x)
پرش دور فعلی با continue
با continue بقیه دور فعلی رد می شود و دور بعدی شروع می شود.
fruits = ["apple", "banana", "cherry"]
for x in fruits:
if x == "banana":
continue
print(x)
تابع range() برای شمارشی ها
برای n بار تکرار، از range() استفاده کن؛ از صفر تا قبلِ انتها.
for x in range(6):
print(x)
نکته: range(6) یعنی 0 تا 5؛ 6 شامل نیست.
for x in range(2, 6):
print(x)
for x in range(2, 30, 3):
print(x)
else در پایان for
بخش else اگر حلقه طبیعی تمام شود اجرا می شود؛ نه با break.
for x in range(6):
print(x)
else:
print("Finally finished!")
for x in range(6):
if x == 3:
break
print(x)
else:
print("Finally finished!")
حلقه تو در تو (Nested)
در هر دور حلقه بیرونی، حلقه داخلی کامل اجرا می شود.
adj = ["red", "big", "tasty"]
fruits = ["apple", "banana", "cherry"]
for x in adj:
for y in fruits:
print(x, y)
حلقه خالی با pass
اگر موقتاً کدی نداری، pass بگذار تا خطا نشود.
for x in [0, 1, 2]:
pass
گام های عملی
- با range تا 10 چاپ کن.
- عدد 5 را با continue رد کن.
- روی 7 با break متوقف شو.
جمع بندی سریع
- حلقه for روی دنباله می چرخد.
- break حلقه را می بُرد.
- continue دور را رد می کند.
- range برای تکرار شمارشی است.
- else فقط پس از پایان طبیعی می آید.
نکته: برای مقایسه، صفحه حلقه while را ببین و سپس به توابع برو. همچنین برای شرط ها، عملگرهای منطقی مفید است.