خانه توسعهدهنده تکنولوژی بکاند پایتون کار با حلقه for در پایتون – آموزش ساده و کاربردی همراه با مثال
کار با حلقه for در پایتون – آموزش ساده و کاربردی همراه با مثال
حلقه for در پایتون یکی از قدرتمندترین ابزارها برای کار با داده به حساب میآید. اما اگر به تازگی شروع به آموزش پایتون و یا حتی آموزش برنامه نویسی کرده باشید، سر و کله زدن با این حلقهها میتواند اندکی گیجکننده باشد.
در این مطلب با کوئرا بلاگ همراه باشید تا نهتنها بگوییم حلقه For در پایتون چیست و چه کاربردهای جذابی در زمینه پاکسازی یا تحلیل داده دارد، بلکه روش کار با آن را نیز به شکلی قدم به قدم توضیح دهیم.
فهرست مطالب
Toggleاصطلاحات ضروری که باید بشناسید
در این مطلب از اصطلاحات گوناگون برای توصیف کارکردها و فرایندها استفاده شده که لازم است با معانی هریک آشنا باشید. جدول پایین به شما در درک مفاهیم یاری میرساند.
عبارت | معنی |
---|---|
حلقه for یا for loop | تابعی تکرارشونده که از آن برای اجرای پیدرپی گزارهها (Statements) استفاده میکنند. |
تکرار یا Iterate | در برنامهنویسی، «تکرار» یا «ایتریشن» به معنی اجرای دوباره و دوباره کد یا فرایندها است تا بالاخره به شرطی (Condition) مشخص برسیم. |
تکرارشوندهها یا Iterable | تکرارشوندهها نوعی «شی» یا «آبجکت» در پایتون هستند که قابلیت تکرارشوندگی پیدرپی دارند. |
جریان کنترل یا Control Flow | جریان کنترل یا جریان برنامه به معنی ترتیب اجرای کدهای هر برنامه است. |
گزارههای کنترل یا Control Statements | در پایتون، فرمانهایی مانند «ادامه» (Continue)، «توقف» (Break) و «عبور» (Pass) جزو گزارههای کنترل هستند و میتوانند ترتیب اجرای کدهای برنامه را تغییر دهند. |
تورفتگی یا Indentation | تورفتگی به فضای خالی پیش از هر خط از کد گفته میشود. در پایتون، تورفتگیها نشان میدهند که کدام خطوط کد به یک بلوک تعلق دارند. در سایر زبانها نیز صرفا برای افزایش خوانایی کد از تورفتگیها استفاده میشود. |
تاپل یا Tuple | تاپل مجموعهای از مقادیر منظم است که از آن برای ذخیرهسازی چندین آیتم (عنصر) در تنها یک متغیر استفاده میشود. |
if | if یکی از رایجترین گزارههای شرطی (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 و 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 پایتون وجود دارد که در ادامه آنها را بررسی میکنیم.
۱. توقف یا Break
کلمه کلیدی Break زمانی استفاده میشود که میخواهیم بعد از رسیدن به شرایطی مشخص، برنامه زودتر از حلقه خارج شود. این فرمان حلقهای که درون آن قرار گرفته را متوقف و جریان برنامه را به گزاره بعدی و بیرون از حلقه هدایت میکند.
برای مثال:
آیا Break در حلقههای تودرتو (Nested Loops) هم کار میکند؟
در حلقههای تودرتو، گزاره Break تنها درونیترین حلقه را متوقف خواهد کرد.
۲. ادامه یا Continue
از کلمه کلیدی Continue میتوان برای پایان دادن به فرایند ایتریشن یا تکرار کنونی در حلقه for استفاده کرد. جریان کنترل به ایتریشن بعدی حلقه میرود.
مثال:
۳. عبور یا Pass
گزاره Pass پایتون عمدا بهگونهای طراحی شده که کاری انجام نمیدهد. بنابراین میتوانید از آن به عنوان فضای رزرو برای کدهای آتی استفاده کنید یا زمانی که سینتکس نیاز به گزاره دارد اما نمیخواهید اتفاقی بیفتد، به سراغ آن بروید.
در حلقه for، میتوانید از گزاره pass برای نادیده گرفتن یک گزاره شرطی استفاده کنید. در این حالت، برنامه بهگونهای به اجرا درمیآید که انگار هیچگونه گزاره شرطی نداشتهایم.
برای مثال:
روشهای استفاده از حلقه 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 iterator_1 in iterable_1:
for iterator_2 in iterable_2:
# inner loop body
#outer loop body
نکته: اهمیت تورفتگیها را در پایتون فراموش نکنید. برخلاف دیگر زبانهای برنامهنویسی، پایتون از تورفتگیها برای شناسایی بلوکهای کد کمک میگیرد.
برای مثال:
استفاده از بلوک else همراه با حلقه for در پایتون
else گزارهای شرطی است که در ترکیب با گزاره if استفاده میشود. در پایتون میتوانید از این گزاره درست بعد از بدنه حلقه for نیز کمک بگیرید. زمانی که تمام تکرارها به پایان برسد، بلوک else به عنوان بخشی از حلقه به اجرا درمیآید. سینتکس حلقه for همراه با بلوک else به شکل زیر خواهد بود:
جمعبندی حلقه for در پایتون
اگر بخواهیم در پایان به نوعی جمعبندی برسیم، موارد زیر را در این مطلب آموختیم:
- از حلقههای for برای تکرار فرایند اجرای آبجکتها و توالیها استفاده میشود.
- هر آبجکتی که بتواند اعضای گروه خود را به صورت یکبهیک بازگرداند، آبجکتی تکرارشونده در پایتون به حساب میآید.
- به صورت کلی سه گزاره کنترل برای شکستن حلقهها یا رفتن به ایتریشن بعدی داریم: break ،continue و pass.
- تورفتگیها به پایتون میفهمانند کدام گزارهها درون یا بیرون از حلقه قرار گرفتهاند.
اکنون نوبت شماست که با تمرین برنامه نویسی و به چالش کشیدن خود با سناریوهای گوناگون، تسلطی کامل بر حلقه for در پایتون پیدا کنید.
منبع: Coursera