کار با حلقه for در پایتون – آموزش ساده و کاربردی همراه با مثال

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

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

در این مطلب با کوئرا بلاگ همراه باشید تا نه‌تنها بگوییم حلقه For در پایتون چیست و چه کاربردهای جذابی در زمینه پاکسازی یا تحلیل داده دارد، بلکه روش کار با آن را نیز به شکلی قدم به قدم توضیح دهیم.

اصطلاحات ضروری که باید بشناسید

در این مطلب از اصطلاحات گوناگون برای توصیف کارکردها و فرایندها استفاده شده که لازم است با معانی هریک آشنا باشید. جدول پایین به شما در درک مفاهیم یاری می‌رساند.

عبارتمعنی
حلقه for یا for loopتابعی تکرارشونده که از آن برای اجرای پی‌درپی گزاره‌ها (Statements) استفاده می‌کنند.
تکرار یا Iterateدر برنامه‌نویسی، «تکرار» یا «ایتریشن» به معنی اجرای دوباره و دوباره کد یا فرایندها است تا بالاخره به شرطی (Condition) مشخص برسیم.
تکرارشونده‌ها یا Iterableتکرار‌شونده‌ها نوعی «شی» یا «آبجکت» در پایتون هستند که قابلیت تکرارشوندگی پی‌درپی دارند.
جریان کنترل یا Control Flowجریان کنترل یا جریان برنامه به معنی ترتیب اجرای کدهای هر برنامه است.
گزاره‌های کنترل یا Control Statementsدر پایتون، فرمان‌هایی مانند «ادامه» (Continue)، «توقف» (Break) و «عبور» (Pass) جزو گزاره‌های کنترل هستند و می‌توانند ترتیب اجرای کدهای برنامه را تغییر دهند.
تورفتگی یا Indentationتورفتگی به فضای خالی پیش از هر خط از کد گفته می‌شود. در پایتون، تورفتگی‌ها نشان می‌دهند که کدام خطوط کد به یک بلوک تعلق دارند. در سایر زبان‌ها نیز صرفا برای افزایش خوانایی کد از تورفتگی‌ها استفاده می‌شود.
تاپل یا Tupleتاپل مجموعه‌ای از مقادیر منظم است که از آن برای ذخیره‌سازی چندین آیتم (عنصر) در تنها یک متغیر استفاده می‌شود.
ifif یکی از رایج‌ترین گزاره‌های شرطی (Conditional Statements) است. if با بررسی وضعیت کنونی، تعیین می‌کند که گزاره باید به اجرا در بیاید یا خیر. اگر شرط برآورده شده باشد (True)، بلوک کد اجرا می‌شود.
elseگزاره else حاوی بلوکی از کد است که زمانی به اجرا درمی‌آید که شرط گزاره if برآورده نشود (False).
breakفرمان break، حلقه‌ای که درون آن قرار گرفته را متوقف می‌کند و جریان برنامه را به گزاره بعدی انتقال می‌دهد.
continueبا استفاده از کلمه کلیدی Continue می‌توان به فرایند تکرار کنونی حلقه for پایان داد و به سراغ ایتریشن بعدی رفت.
passدر پایتون، pass هیچ کاری انجام نمی‌دهد و می‌توانید از آن به عنوان فضای رزرو برای کد یا نادیده گرفتن بخشی از کد کمک بگیرید.

حلقه For در پایتون چیست؟

حلقه For را می‌توان ساختاری در برنامه‌نویسی توصیف کرد که به شما اجازه می‌دهد بلوک‌های کد را به تعداد دفعات معینی به صورت پی‌در‌پی به اجرا درآورید.. اگر بخواهیم طوری دیگر بگوییم، حلقه یا لوپ For می‌تواند کد را در مقیاس مورد نظر شما اجرا کند و آنقدر به این کار ادامه دهد تا به انتهای مجموعه یا توالی برسد.

به این ترتیب، برنامه‌نویسان می‌توانند به سادگی به وظایفی مانند تکرار (Iterate) فهرست‌ها، آرایه‌ها و کالکشن‌ها رسیدگی کنند و آنقدر به این کار ادامه دهند تا به پایان توالی برسند یا کاری مشخص چند مرتبه انجام شود. در غایی‌ترین حالت، حلقه for در پایتون برای این طراحی شده که بتوانید بعد از هر تکرار، به سراغ عنصر بعدی در توالی بروید و از پردازش تمامی عناصر مطمئن شوید.

حلقه For پایتون به صورت خاص بسیار منعطف و کاربر پسند طراحی شده است. این لوپ مستقیما به تکرار موارد موجود در هر توالی (مانند یک رشته یا فهرست) – به ترتیب قرارگیری – می‌پردازد و برخلاف برخی زبان‌های دیگر، نیازی به فهرست‌سازی (Indexing) ندارد. این قابلیت باعث می‌شود حلقه‌سازی با عناصر گوناگون آسان‌تر شود و کدی خواناتر و دقیق‌تر داشته باشید.

# Define a list of numbers
numbers = [1, 2, 3]

# Iterate over the list using a for loop
for number in numbers:
    print(number)

کد بالا خروجی زیر را در اختیارمان می‌گذارد:

1
2
3

ناگفته نماند که سایر زبان‌های برنامه‌نویسی هم از حلقه‌های For پشتیبانی می‌کنند، اما قواعد نحوی (سینتکس) یا قابلیت‌های متفاوتی از خود به نمایش خواهند گذاشت. برای مثال زبان‌هایی مانند C و جاوا رویکردی سنتی‌تر در پیش می‌گیرند. در این زبان‌ها حلقه با مقدار‌دهی اولیه به یک متغیر، تنظیم شرط تداوم (Continuation Condition) برای لوپ و تعریف گام تکراری کنترل می‌شود.

چطور حلقه for در پایتون را بنویسم؟

پیش از هرچیز بیایید نگاهی به ساختار بنیادین حلقه for در پایتون بیندازیم:

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

for و in هر دو از کلمات کلیدی پایتون به حساب می‌آیند، اما می‌توانید ام متغیر پیمایشگر (iterator variable) و تکرارشونده (iterable) را هرچیزی که دوست دارید بگذارید. در نظر داشته باشید که بعد از گزاره حلقه for نیاز به علامت دونقطه (:) خواهید داشت و کد تورفته هم باید در بدنه حلقه قرار بگیرد.

حالا که با سینتکس حلقه for آشنا شده‌ایم، بیایید یک حلقه بسازیم.

قدم اول

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

for

قدم دوم

حالا باید متغیر پیمایشگر یا Iterator Variable را بنویسیم. پیمایشگر به سراغ تک‌تک مقادیر موجود در یک تکرارشونده (مانند یک لیست، تاپل یا بازه) در حلقه for می‌رود و در هر تکرار، آن‌ها را یکی‌یکی بررسی می‌کند.

مثال:‌ فرض می‌کنیم فهرستی به نام «box_of_kittens» [😾😺😼😽] به عنوان تکرارشونده داریم. در این حالت می‌توان نام متغیر پیمایشگر را هرچیزی گذاشت، اما ممکن است از عبارت Kitten (به معنی بچه‌گربه) کمک بگیرید تا نشان دهید در حلقه‌ها به سراغ تک‌تک بچه‌گربه‌های [😺] حاضر در box_of_kittens خواهید رفت.

for kitten

قدم سوم

حالا از کلمه کلیدی in استفاده می‌کنیم.

for kitten in

قدم چهارم

در این مرحله تکرارشونده را همراه با علامت دونقطه (:) وارد می‌کنیم. تکرارشونده (یا متغیر توالی | Sequence Variable) آبجکتی است که در حلقه تکرار خواهد شد. در مثال بالا، بچه‌گربه یا Kitten متغیر حلقه است و box_of_kitten هم متغیر توالی، زیرا نماینده گروهی است که متغیر واحد از داخل آن انتخاب می‌شود.

for kitten in box_of_kittens:

قدم پنجم

گزاره‌های حلقه خود را درون بلوکی تورفته بنویسید. این تورفتگی به پایتون می‌فهماند که کدام گزاره‌ها درون حلقه قرار می‌گیرند و کدام گزاره‌ها بیرون از آن.

for kitten in box_of_kittens:
  print(f"{kitten} is such a cute kitten!")

حالا بیایید این کد را همراه با فهرستی به نام box_of_kittens اجرا کنیم و نتیجه را ببینیم:

لوپ فور بعد از اجرا

تمرین

با توجه به آنچه در مرحله قبلی آموختید، یک حلقه for بنویسید که اعداد ۱ تا ۱۰ را پرینت کند.

راهنمایی: بیش از یک راه برای انجام دادن این کار وجود دارد.

راه حل اول

numbers = [1,2,3,4,5,6,7,8,9,10]

for num in numbers:
  print(num)

راه حل دوم

for num in range(1,11):
  print(num)

حلقه for در پایتون چطور کار می‌کند؟

فلوچارت پایین به خوبی جریان کنترل حلقه for را در پایتون نشان می‌دهد:

فلوچارت حلقه For در پایتون

چطور حلقه for پایتون را بشکنیم؟

به صورت کلی سه راه برای شکستن حلقه for پایتون وجود دارد که در ادامه آن‌ها را بررسی می‌کنیم.

۱. توقف یا Break

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

برای مثال:

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

آیا Break در حلقه‌های تودرتو (Nested Loops) هم کار می‌کند؟

در حلقه‌های تودرتو، گزاره Break تنها درونی‌ترین حلقه را متوقف خواهد کرد.

۲. ادامه یا Continue

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

مثال:

گزاره Continue

۳. عبور یا Pass

گزاره Pass پایتون عمدا به‌گونه‌ای طراحی شده که کاری انجام نمی‌دهد. بنابراین می‌توانید از آن به عنوان فضای رزرو برای کدهای آتی استفاده کنید یا زمانی که سینتکس نیاز به گزاره دارد اما نمی‌خواهید اتفاقی بیفتد، به سراغ آن بروید.

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

برای مثال:

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

روش‌های استفاده از حلقه for در پایتون

حلقه for به صورت کلی روشی انعطاف‌پذیر برای تکرار کردن آبجکت‌های تکرارشونده به حساب می‌آید. هر شی یا آبجکتی که بتواند یکی از اعضای گروه را به صورت نوبتی بازگرداند، آبجکتی تکرارشونده در پایتون به حساب می‌آید. در ادامه برخی از کاربردهای حلقه for را مثال می‌زنیم.

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

در این نوع از حلقه for، حروف نقش متغیر پیمایشگر را ایفا می‌کنند و رشته هم متغیر توالی است.

مثال:

حلقه‌سازی برای کاراکترهای مجزا

ایتریشن یک لیست یا تاپل

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

برای مثال:

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

می‌توانید لیست یا تاپل را به این شکل تعریف کنید:

animals_list = ["cat", "dog", "giraffe", "elephant", "panda"]
animals_tuple = ("cat", "dog", "giraffe", "elephant", "panda")

سپس حلقه for خود را بسازید:

for animal in animals_list:
    print(f"{animal}s are adorable!")

با اجرای کد شاهد چنین نتیجه‌ای خواهید بود:

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

ساخت حلقه‌های for تودرتو

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

for iterator_1 in iterable_1:
  for iterator_2 in iterable_2:
   # inner loop body
  #outer loop body

نکته: اهمیت تورفتگی‌ها را در پایتون فراموش نکنید. برخلاف دیگر زبان‌های برنامه‌نویسی، پایتون از تورفتگی‌ها برای شناسایی بلوک‌های کد کمک می‌گیرد.

برای مثال:

حلقه‌های تودرتو Python

استفاده از بلوک else همراه با حلقه for در پایتون

else گزاره‌ای شرطی است که در ترکیب با گزاره if استفاده می‌شود. در پایتون می‌توانید از این گزاره درست بعد از بدنه حلقه for نیز کمک بگیرید. زمانی که تمام تکرارها به پایان برسد، بلوک else به عنوان بخشی از حلقه به اجرا درمی‌آید. سینتکس حلقه for همراه با بلوک else به شکل زیر خواهد بود:

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

جمع‌بندی حلقه for در پایتون

اگر بخواهیم در پایان به نوعی جمع‌بندی برسیم، موارد زیر را در این مطلب آموختیم:

  • از حلقه‌های for برای تکرار فرایند اجرای آبجکت‌ها و توالی‌ها استفاده می‌شود.
  • هر آبجکتی که بتواند اعضای گروه خود را به صورت یک‌به‌یک بازگرداند، آبجکتی تکرارشونده در پایتون به حساب می‌آید.
  • به صورت کلی سه گزاره کنترل برای شکستن حلقه‌ها یا رفتن به ایتریشن بعدی داریم: break ،continue و pass.
  • تورفتگی‌ها به پایتون می‌فهمانند کدام گزاره‌ها درون یا بیرون از حلقه قرار گرفته‌اند.

اکنون نوبت شماست که با تمرین برنامه نویسی و به چالش کشیدن خود با سناریوهای گوناگون، تسلطی کامل بر حلقه for در پایتون پیدا کنید.

منبع: Coursera

آموزش برنامه نویسی با کوئرا کالج
شایان ضیایی

اشتراک در
اطلاع از
guest

0 دیدگاه‌
بازخورد (Feedback) های اینلاین
View all comments