Python For Loops

حلقه for در پایتون

از حلقه for جهت تکرار روی یک دنباله (که ممکن است لیست، تاپل، دیکشنری، مجموعه یا یک رشته باشد) استفاده می‌شود.

این کاربرد کمتر به کلیدواژه for در سایر زبان‌های برنامه‌نویسی شبیه است و بیشتر شبیه یک تابع شیء تکرار شونده (iterator method) در سایر زبان‌های برنامه‌نویسی شیء گرا است.

با استفاده از حلقه for می‌توانیم یک مجموعه از دستورات را یک بار برای هر یک از آیتم‌های موجود در لیست، تاپل و ... اجرا کنیم.


fruits = ["apple", "banana", "cherry"]
for x in fruits:
  print(x)

خروجی:

حلقه for نیازی به تعریف یک متغیر شمارنده از قبل ندارد.

حلقه روی یک رشته

رشته‌ها هم یک شیء تکرارپذیر هستند. آن‌ها شامل یک دنباله از کاراکترها می‌باشند. در کد زیر حلقه را روی کاراکترهای "banana" ایجاد کرده‌ایم.


for x in "banana":
  print(x)

خروجی:

دستور break

با استفاده از دستور break می‌توانیم حلقه را قبل از آنکه روی همه آیتم‌ها اجرا شود متوقف کنیم.


fruits = ["apple", "banana", "cherry"]
for x in fruits:
  print(x)
  if x == "banana":
    break

خروجی:

دستور continue

با استفاده از دستور continue می‌توانیم تکرار جاری حلقه را متوقف و به تکرار بعدی برویم. برای نمونه در کد زیر کلمه "banana" را پرینت نمی‌کنیم.


fruits = ["apple", "banana", "cherry"]
for x in fruits:
  if x == "banana":
    continue
  print(x)

خروجی:

تابع ()range

برای اجرای یک مجموعه کد به تعداد مرتبه مشخص می‌توانیم از تابع range() استفاده کنیم.

تابع range() یک دنباله از اعداد را برمی‌گرداند که به صورت پیش‌فرض از صفر شروع و یک واحد یک واحد افزایش پیدا می‌کند و در عدد مشخص شده پایان می‌یابد.


for x in range(6):
  print(x)

خروجی:

دقت داشته باشید که range(6) از صفر تا 6 نیست بلکه از صفر تا 5 را شامل می‌شود.

هر چند تابع range() به صورت پیش‌فرض از صفر شروع می‌شود ولی می‌توان آن را با تعیین یک مقدار برای شروع آن تغییر داد. برای مثال range(2, 6) اعداد بین 2 و 6 را شامل می‌شود (2 شامل است ولی 6 خیر).


for x in range(2, 6):
  print(x)

خروجی:

تابع range() به صورت پیش‌فرض دنباله را یک واحد یک واحد افزایش می‌دهد ولی با مشخص کردن مقدار افزایش می‌توانیم آن را تغییر دهیم. برای مثال range(2, 30, 3) از 2 شروع شده، 3 واحد 3 واحد افزایش پیدا می‌کند و در 30 پایان می‌یابد.


for x in range(2, 30, 3):
  print(x)

خروجی:

else در حلقه for

کلیدواژه else در حلقه for یک بلوک از کد را جهت اجرا در پایان حلقه مشخص می‌کند.


for x in range(6):
  print(x)
else:
  print("Finally finished!")

خروجی:

بلوک else در صورتی که حلقه بوسیله دستور break متوقف شده باشد، اجرا نخواهد شد.

for x in range(6):
  if x == 3: break
  print(x)
else:
  print("Finally finished!")

خروجی:

حلقه تو در تو

در صورتی که یک حلقه در داخل حلقه‌ای دیگر وجود داشته باشد، می‌گوئیم که حلقه تو در تو است.

در این حالت حلقه داخلی به ازای هر تکرار حلقه خارجی یک بار اجرا می‌شود.


adj = ["red", "big", "tasty"]
fruits = ["apple", "banana", "cherry"]

for x in adj:
  for y in fruits:
    print(x, y)

خروجی:

دستورpass

حلقه for نمی‌تواند خالی باشد، اما به هر دلیلی اگر یک حلقه for بدون محتوا دارید، عبارت pass را برای جلوگیری از بروز خطا داخل آن قرار دهید.

for x in [0, 1, 2]:
    pass