حلقه ها در پایتون با مثال و کد – به زبان ساده
انواع حلقه ها در پایتون به حلقه for و حلقه while و حلقههای تو در تو تقسیم میشوند. البته هر کدام از آنها میتوانند بلوک else هم داشته باشند. بنابراین انواع حلقه ها در پایتون شامل زیر مجموعههایی مانند حلقه for-else، حلقه while-else نیز هستند. برنامه نویسان با کمک این ساختارها میتوانند بلوک خاصی از کدها را به صورت منظم و تکراری، با تعداد مشخص، اجرا کنند. فرض کنید لیستی از اعداد صحیح داریم. اکنون باید عملیات ریاضی خاصی را بر روی یک به یک اعضای آن لیست انجام دهیم. یکی از بهترین ابزارها برای انجام این کار در پایتون، حلقه ها هستند. البته ممکن است استفاده از حلقه در روزهای اول برنامه نویسی کمی سردرگم کننده باشد. اما به هر حال، تمام برنامه نویسان پایتون باید روش کار با حلقه ها را بلد باشند.
- با مهمترین ساختارهای حلقه در پایتون آشنا شده و نام آن را یاد میگیرید.
- با سینتکس حلقه for و روش تعریف و استفاده از آن آشنا میشوید.
- متوجه میشوید که بلوک else چه عملکردی در حلقه ها دارد و چطور باید نوشته شود.
- روش درست نوشتن سینتکس حلقه while را یاد گرفته و میتوانید حلقه بینهایت بسازید.
- با عبارتهای کنترل حلقه مانند break و continue و pass آشنا شده و عملکرد آنها را میآموزید.
- دلیل و روش استفاده و نحوه نوشتن حلقههای تو در تو را یاد میگیرید.


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

انواع حلقه در پایتون
برای اجرای تکراری مجموعهای از دستورات در پایتون از حلقه استفاده میکنیم. خود حلقه به چند دسته تقسیم شده و در چند شکل مختلف قابل استفاده است. در فهرست پایین، مهمترین دستهبندی حلقه ها در پایتون را معرفی کردهایم.
- حلقه while: این حلقه، ابتدا عبارت شرطی را بررسی میکند. تا زمانی که این عبارت، برابر با True باشد، کد یا مجموعهای از کدها را به صورت تکراری اجرا میکند. همیشه و در هر تکرار، قبل از اجرای کدها یکبار شرط داده شده را بررسی میکند.
- حلقه for: این حلقه، زنجیرهای از دستورات را چندین بار مختلف، پشت سر هم اجرا میکند. برای تکرار حلقه for از متغیری به عنوان شمارنده حلقه استفاده میکنیم. تعریف کدهای شمارنده به صورت مختصر و کوتاه انجام میشود.
- حلقه های تو در تو: برنامه نویسان پایتون میتوانند یک یا چندین حلقه مختلف را به صورت تو در تو با هم استفاده کنند. هیچ محدودیتی در نوع حلقه ها و تعداد آنها وجود ندارد.
در بخشهای بعدی، تمام روشهای نوشتن حلقه را با مثال بررسی کردهایم.
عبارتهای کنترل حلقه در پایتون
از عبارتهای کنترل حلقه برای تغییر روند اجرای برنامه از حالت عادی خود استفاده میشود. هر وقت، فرایند اجرای حلقه ناگهان متوقف شود - با کمک این عبارتها - تمام متغیرهای تعریف شده در آن چرخه به صورت خودکار نابود میشوند.

پایتون برای مدیریت اجرای حلقه ها چند «عبارت کنترلی» (Control Statement) فراهم کرده است. این موارد در فهرست زیر، معرفی شدهاند.
- break: هر وقت در بدنه دستورات حلقه به این کد برسیم، کل جریان حلقه متوقف میشود. سپس اجرای برنامه از اولین دستور بعد از بلوک حلقه ادامه پیدا میکند.
- continue: در صورت برخورد به این دستور در بدنه کدهای حلقه، ادامه اجرای کدهای حلقه در چرخه فعلی متوقف شده و دوباره شرایط شمارنده حلقه بررسی میشود. در صورت برقرار بودن این شرایط، حلقه گردش بعدی را شروع میکند.
- pass: در بعضی از بخشهای برنامه، مانند داخل بلوک حلقهها حتما باید کد نوشته شود، در غیر این صورت مفسر پایتون اعلام خطا میکند. بعضی وقتها برنامه نویسی تمایلی به اجرای هیچ دستوری ندارد. برای مثال میخواهد که حلقه فقط به صورت خالی فقط بچرخد. در چنین شرایطی باید از عبارت pass استفاده بکند.
در بخشهای بعدی مطلب، روش استفاده از تمام عبارتهای بالا را با کمک مثالهای کدنویسی شده، توضیح دادهایم.
با مطالعه مطلب، تا اینجا با انواع حلقه و عبارتهای کنترلی آنها به شکل کلی آشنا شدهاید. در ادامه، این موارد را با شکل جزئیتری بررسی کردهایم. در صورتی تمایل به مطالعه چنین مطالبی، پیشنهاد میکنیم از اپلیکیشن مجله فرادرس استفاده بکنید.
برای نصب اپلیکیشن رایگان مجله فرادرس، کلیک کنید.
حلقه for
با کمک حلقه for در پایتون میتوانیم بر روی عناصر ساختارهایی مانند لیست، تاپل یا حتی کاراکترهای رشته حرکت کنیم. یعنی اینکه میتوانیم دستور یکسانی را بر روی تمام عناصر این ساختارها به شکل تکراری، اجرا کنیم.
دستورات حلقه for به ترتیب در فهرست زیر آورده شدهاند.
- این نوع حلقه ها با کلمه کلیدی for شروع میشوند.
- سپس باید نام متغیری را بنویسیم. این متغیر نماینده عنصر فعلی در هر گردش است. این متغیر همینجا تعریف شده و با پایان یافتن کار حلقه هم نابود میشود.
- بعد از آن کلمه کلیدی in قرار میگیرد. این کلمه نشان میدهد که متغیر قبل از آن در کدام ساختار پیمایشپذیر حرکت خواهد کرد.
- بعد از in هم نام همان ساختاری را مینویسیم که باید بر روی آن پیمایش کنیم.
- در آخر خط هم کاراکتر دونقطه «:» نوشته میشود.
- در بدنه حلقه باید دستورات مورد نظر را بنویسیم. این دستورات بر روی یک به یک عناصر اجرا خواهند شد. نکته مهم این است که دستورات بدنه حلقه دستکم، باید به اندازه یک دندانه نسبت به کد تعریف حلقه جلوتر نوشته شوند.
در بخش بعد، سینتکس حلقه for را نشان دادهایم.
سینتکس حلقه for
در کادر پایین تمام مشخصات سینتکس حلقه for را مشاهده میکنید.
تمام پارامترهای سینتکس بالا را در فهرست زیر توضیح دادهایم.
- متغیر iterating_var نشان دهنده عنصر فعلی در هر چرخش حلقه است.
- متغیر sequence نام ساختار پیمایشپذیری است که بر روی عناصر آن پیمایش میکنیم.
- عبارت statements هم نشاندهنده دستور یا دستوراتی است که باید بر روی یک به یک عناصر موجود در ساختار sequence - به صورت تکراری - اجرا شوند.
روش کار حلقه را به صورت قدمبهقدم در فهرست پایین نوشتهایم.
- قبل از اجرای حلقه، ساختار sequence بررسی میشود. اگر این ساختار پیمایشپذیر و حاوی عنصر باشد، اولین عنصر آن به متغیر iterating_var اختصاص داده میشود.
- برنامه وارد بدنه حلقه شده و تمام دستورات آن را اجرا میکند.
- در دور بعدی، بررسی میشود که آیا بعد از عنصر اختصاص داده شده به iterating_var در ساختار پیمایشپذیر، مقدار دیگری وجود دارد یا نه.
- اگر مقدار دیگری وجود داشت، این مقدار به متغیر iterating_var اختصاص داده شده و حلقه دوباره اجرا میشود. ادامه عملیات دوباره از مرحله 3 پیگیری میشود. در غیر این صورت اجرای برنامه به مرحله بعد میرود.
- عملیات حلقه به پایان رسیده و بلافاصله کد بعد از بلوک حلقه اجرا میشود.
در هربار اجرای حلقه، بلوک statements به طور کامل اجرا میشود. این بلوک میتواند از مقدار iterating_var استفاده کرده یا بدون توجه به آن وظیفه دیگری را انجام بدهد. حلقه تا زمانی اجرا میشود که تمام عناصر موجود در ساختار پیمایشپذیر یک به یک به متغیر iterating_var اختصاص داده شوند.
فلوچارت حلقه for
در تصور پایین، فلوچارت حلقه for در پایتون را مشاهده میکنید.

اجرای حلقه for بر روی رشته در پایتون
رشته یا استرینگ در پایتون به توالی از حروف یا کاراکترهای تعریف شده Unicode گفته میشود. هر کدام از این کاراکترها شماره اندیسی دارند که موقعیتشان را در رشته نشان میدهد. از آنجا که رشتهها توالی از کاراکترها هستند، با کمک حلقه for در پایتون میتوانیم بر روی آنها پیمایش کنیم.
مثال: حذف حروف صدادار از متن
در مثال پایین، رشتهای داده شده است. با کمک حلقه for یک به یک تمام کاراکترهای آن را بررسی میکنیم. اگر این کاراکترها جزو حروف الفبای صدادار بودند، آنها را حذف کرده و باقی کاراکترها را چاپ میکنیم. در واقع تمام حروف صدادار را از متن داده شده حذف میکنیم.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Btfl s bttr thn gly.
Explct s bttr thn mplct.
Smpl s bttr thn cmplx.
Cmplx s bttr thn cmplctd.اجرای حلقه for بر روی تاپل
شیء تاپل در پایتون، توالی از عناصر اندیسگذاری شده است. بنابراین میتوانیم با کمک حلقه for بر روی تمام عناصر آن حرکت کنیم.
مثال: جمع تمام اعداد صحیح
در مثال زیر، با کمک حلقه for بر روی عناصر شیء تاپل پیمایش میکنیم. در این مثال، تمام عناصر تاپل، اعداد صحیح یا «Integer» هستند. هدف محاسبه نتیجه جمع تمام این اعداد با همدیگر است.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Total = 539اجرای حلقه for بر روی لیست
شیء لیست در پایتون، هم توالی از عناصر اندیسگذاری شده است. در نتیجه میتوان با استفاده از حلقه for بر روی عناصر درون لیست پیمایش کرد.
مثال: تشخیص و چاپ اعداد زوج
در مثال زیر، لیستی از اعداد صحیح داریم. با کمک حلقه for میخواهیم تمام عناصر زوج آن را در خروجی چاپ کنیم.
وقتی که کد بالا را اجرا کنیم، خروجی تولید شده به شکل زیر نمایش داده میشود.
34
54
78
44
80حلقه for با اشیاء Range
اشیاء «Range» محدودهای از اعداد را نشان میدهند. برای ساختن این شیءها باید از تابع range در پایتون استفاده کنیم. تابع range() یکی از توابع درونی پایتون است که توالی از اعداد را در خروجی برمیگرداند. خروجی این تابع شامل عناصری از جنس «Integer» است.
در کادر زیر، سینتکس تعریف تابع range() را نوشتهایم.
در سینتکس بالا سه پارامتر وجود دارند.
- start: این پارامتر، عدد اول توالی را نشان میدهد. مقدار پیشفرض این پارامتر برابر با 0 است.
- stop: مقدار این پارامتر، منهای 1، برابر با عدد آخر توالی است.
- step: مقدار این پارامتر باید عدد صحیح باشد. این عدد مقدار افزایش هر عنصر بعد از عنصر قبلی در توالی را نشان میدهد. step به صورت پیشفرض برابر با 1 است.

مثال: روش های مختلف پیاده سازی تابع range
در کادر پایین سه روش مختلف استفاده از تابع range() را به عنوان شمارنده حلقه for پیادهسازی کردهایم.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
0 1 2 3 4
10 11 12 13 14 15 16 17 18 19
1 3 5 7 9استفاده از حلقه for بر روی دیکشنری
اشیاء دیکشنری در پایتون مانند اشیاء لیست، تاپل و رشته، عناصر خود را اندیسگذاری نمیکنند. هرچند این ساختارها پیمایشپذیر هستند اما عناصر خود را به صورت توالی نگهداری نمیکنند.
مثال اول: چاپ تمام کلیدهای دیکشنری
در کادر پایین، برای پیمایش بر روی اشیاء دیکشنری از حلقه for استفاده کردهایم. متغیر شمارنده در حلقه for هر بار به یکی از کلیدهای موجود در دیکشنری اشاره میکند.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
10
20
30
40با توجه به مثال بالا، میبینید که شمارنده حلقه for بر روی کلیدهای دیکشنری پیمایش میکند. از آنجا که به راحتی میتوان به کلیدهای دیکشنری دسترسی داشت، در نتیجه مقادیر متناظر با آن هم در دسترس هستند. برای دسترسی به مقدار مربوط به هر کلید یا باید از براکتهای باز و بسته [] یا متد get() استفاده کنیم.
مثال دوم: چاپ تمام کلید و مقدارهای دیکشنری
در مثال پایین، روش دسترسی همزمان به کلیدها و مقادیر دیکشنری را بررسی کردهایم.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
10 : Ten
20 : Twenty
30 : Thirty
40 : Fortyنکته: متدهای items() و keys() و values() در کلاس دیکشنری به ترتیب اشیائی با نامهای dict_items و dict_keys و dict_values را برمیگردانند. به این متدها «تکرارگر» یا «Iterators» گفته میشود. بنابراین با کمک حلقه for میتوانیم بر روی آنها هم پیمایش کنیم. این متدها هم جزو متدهای دیکشنری در پایتون هستند. برای آشنایی با انواع متدهای دیکشنری در پایتون پیشنهاد میکنیم که مطلب مربوط به آن را در مجله فرادرس، مطالعه کنید.
مثال سوم: متد items برای تعریف شمارنده حلقه
شیء dict_items لیستی است که عناصر آن تاپل هستند. این تاپلها هر کدام فقط از دو عنصر تشکیل شدهاند. عناصر تاپل همان کلید و مقدارهای متناظر با هم در دیکشنریاند. در نتیجه حلقه for با کمک متد items() به راحتی میتواند بر روی عناصر دیکشنری پیمایش کند.
در کادر زیر، مثالی از انجام این عملیات را بررسی کردهایم.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
(10, 'Ten')
(20, 'Twenty')
(30, 'Thirty')
(40, 'Forty')چگونه از فرادرس برای یادگیری پایتون کمک بگیریم؟
بهترین روش برای یادگیری پایتون روشی است که هم برای یادگیرنده جذاب باشد و هم محتوای مفیدی ارائه دهد. روشهای متنوعی برای یادگیری زبانهای برنامهنویسی وجود دارند. به همین دلیل، روش مناسب برای هر فرد میتواند فرق داشته باشد. با این حال، بعضی روشها تقریبا برای همه افراد، مؤثر هستند. یکی از روشهای مناسب برای همه، تماشای فیلمهای آموزشی است. این فیلمها چند ویژگی مهم دارند. برای مثال، باعث میشوند همزمان از حواس بینایی و شنوایی خود استفاده کنیم. همچنین میتوانیم آنها را بدون محدودیت و چندین بار مختلف، ببینیم.

فرادرس، به عنوان یکی از بهترین تولیدکنندگان فیلمهای آموزشی در کشور، مجموعه آموزشهای باکیفیتی را برای یادگیری زبان برنامهنویسی پایتون تولید و منتشر کرده است. پایتون جزو محبوبترین و کاربردیترین زبانهای برنامهنویسی جهان است. در فهرست زیر، چند نمونه از آموزشهای سطح متوسط و پیشرفته پایتون را معرفی کردهایم. همه این آموزشها توسط فرادرس تولید شدهاند. اگر مایل باشید، با کلیک روی تصویر بالا میتوانید به آموزشهای بیشتری دسترسی پیدا کنید.
- فیلم آموزش برنامه نویسی پایتون، همراه با مثال های عملی در Python + گواهینامه
- فیلم آموزش یادگیری عمیق در پایتون با تنسورفلو و کراس، TensorFlow و Keras + گواهینامه
- فیلم آموزش تجزیه و تحلیل و آماده سازی داده ها با پایتون
- فیلم آموزش ساختمان داده ها با پایتون + گواهینامه
- فیلم آموزش برنامه نویسی پایتون پیشرفته، ترفندهای Python
حلقه for با بلوک else
در پایتون بعد از حلقه for میتوانیم از بلوک else هم استفاده کنیم. اگر بلوک else بعد از حلقه for نوشته شود، کدهای این بلوک، فقط بعد از به پایان رسیدن روال عادی انجام دستورات حلقه، اجرا میشوند. پایان عادی حلقه for به معنای آن است که تمام عناصر پیمایشپذیر یک به یک توسط حلقه دیده شده و عملیات آن بدون برخورد با عبارت break به پایان رسیده است.
ساختارهای کنترلی مانند عبارتهای break و else جزو مطالب تقریبا پیشرفته پایتون هستند. اما پایتون از دستورات و تکنیکهای پیشرفتهتر و حرفهایتری هم بهره میبرد. برای یادگیری نکات فنی و پیچیده پایتون و تبدیل شدن به توسعهدهنده حرفهای این زبان، پیشنهاد میکنیم که فیلم آموزش برنامه نویسی پایتون پیشرفته، بررسی ترفندهای Python را از فرادرس مشاهده کنید. لینک مربوط به این فیلم را در پایین نیز قرار دادهایم.
نکته: عبارت break به برنامه اجازه میدهد که در صورت برقرار بودن شرط خاصی در میانههای حلقه از آن خارج شود. یعنی برنامه با کمک این عبارت از اجرای ادامه عملیات حلقه، صرفهنظر میکند.
فلوچارت حلقه for-else
در فلوچارت پایین، روش کار حلقه for-else به شکل ساده نشان داده شده است.

سینتکس حلقه for-else
در کادر پایین، سینتکس یا روش نوشتن صحیح حلقه for-else را پیادهسازی کردهایم.
مثال اول: ترکیب بلوک else با حلقه for
در مثال پایین، روش ترکیب عبارت else را با عبارت for در پایتون نشان دادهایم.
- تا وقتی که مقدار متغیرcount کمتر از 6 است، شمارنده حلقه یا همان مقدار count چاپ میشود.
- بعد از اینکه مقدار count برابر با 5 شد، برای آخرین بار حلقه اجرا میشود.
- با مساوی شدن مقدار count با عدد 6 کار حلقه به پایان رسیده و دیگر دستورات بدنه for اجرا نمیشوند. پس به سراغ اجرای بلوک else میرویم.
- اکنون دستور print() درون این بلوک اجرا میشود.
- سپس برنامه از بلوک for-else خارج شده و دستور نوشته شده در خط بعد را اجرا میکند. البته در کادر زیر فقط کدهای مربوط به بلوک for-else نوشته شدهاند.
بعد از اجرای کد بالا، خروجی زیر، تولید شده و در کنسول پایتون نمایش داده میشود.
Iteration no. 1
Iteration no. 2
Iteration no. 3
Iteration no. 4
Iteration no. 5
for loop over. Now in else block
End of for loopحلقه for-else با عبارت break
در مواقعی که اجرای حلقه for-else توسط عبارت break به اجبار متوقف میشود، مفسر پایتون بلوک else را نادیده گرفته و از اجرای آن صرف نظر میکند.

مثال: برخورد جریان کد در for-else با عبارت break
در برنامه پایین، روش کار بلوک else در زمان قطع حلقه با دستور break را مشاهده میکنید.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Tهمینطور که مشاهده کردید دستورات بلوک else اصلا اجرا نشدند. این بلوک هیچ کاری انجام نداد، زیرا دستور break به مفسر پایتون اجازه بررسی آن را نمیدهد.
حلقه while در پایتون
ساختار حلقه while را در فهرست پایین به شکل کامل، توضیح دادهایم.
- این بلوک با استفاده از کلمه کلیدی while شروع میشود.
- سپس عبارت شرطی مورد نظر نوشته میشود.
- در انتها کاراکتر دونقطه «:» قرار میگیرد.
- بعد از دو نقطه باید بلوکی از دستورات به صورت تو رفته نوشته شوند. این تو رفتگی کافی است که حداقل به اندازه یک کاراکتر باشد.
- حلقه while در پایتون، بلوک کد داده شده را به صورت تکراری اجرا میکند. این تکرار تا زمانی است که شرط مشخص شده برابر با True باشد.
برای نوشتن شرط میتوانیم از هر عبارتی استفاده کنیم. اگر مقدار آن True باشد، حلقه اجرا میشود. اگر مقدار آن False بوده یا بعدا برابر با False شود، اجرای حلقه متوقف شده و مفسر پایتون اولین خط کد بعد از بلوک while را اجرا میکند.
اگر شرط نوشته شده در مقابل while هیچ وقت False نشود، حلقه به طور دائم اجرا میشود. اجرای حلقه، متوقف نمیشود مگر اینکه با اعمال زور از خارج آن را متوقف کنیم. به چنین حلقه هایی، حلقه بینهایت گفته میشود. معمولا استفاده از حلقه های بینهایت در برنامههای کامپیوتری توصیه نمیشود.
سینتکس حلقه while
در کادر پایین، سینتکس حلقه while را در زبان برنامه نویسی پایتون نوشتهایم.
در زبان پایتون تمام عبارتهایی که با اندازه مساوی - برای مثال یک کاراکتر - تو رفتگی داشته باشند به عنوان بلوک شناخته میشوند. پایتون از دندانهگذاری به عنوان روشی برای دستهبندی عبارتها و کدها استفاده میکند.
فلوچارت حلقه while
در تصویر پایین، با کمک فلوچارت، ساختار ساده حلقه while را نمایش دادهایم.

مثال اول: پیاده سازی عملکرد حلقه while
در مثال پایین عملکرد حلقه while را نشان دادهایم. در این کد، تا زمانی که مقدار count کمتر از ۵ است، دستورات درون بلوک while اجرا میشوند.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Iteration no. 1
Iteration no. 2
Iteration no. 3
Iteration no. 4
Iteration no. 5
End of while loopمثال دوم: اجرای حلقه با تعداد تکرار وابسته به کاربر
در این مثال، روش دیگری از کارکرد حلقه while نمایش داده شده است. به این صورت که در هر بار اجرای حلقه، برنامه از کاربر میخواهد عددی را وارد کند. این فرایند تا زمانی تکرار میشود که کاربر رشته رقمی - رشتههای تشکیل شده از کاراکترهای ۰ تا ۹ - بنویسد. تابع isnumeric() اگر مقدار ورودی معادل با عدد صحیح باشد، True برمیگرداند. در غیر این صورت برابر با False میشود.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
enter a number..10
Your input 10
enter a number..100
Your input 100
enter a number..543
Your input 543
enter a number..qwer
End of while loopحلقه while بینهایت در پایتون
اگر شرط نوشته شده در مقابل عبارت while هیچ وقت False نشود، حلقه به حلقه بینهایت تبدیل میشود. در زمان استفاده از حلقه های while باید خیلی دقت کنیم. زیرا اگر شرط به روش صحیح نوشته نشود و همیشه True باشد، عملیات حلقه هیچوقت متوقف نمیشود. به این حلقه ها، حلقه بینهایت گفته میشود.

البته حلقه های بینهایت هم کاربردهای خودشان را دارند. در برنامه نویسی کلاینت-سرور میتوان از حلقه های بینهایت استفاده کرد. در این ساختارها کامپیوترهای سرور باید به صورت دائم و همیشگی کار کنند. در این صورت کلاینتها میتوانند در مواقع نیاز با آنها ارتباط برقرار کرده و درخواست ارسال کنند.
مثال: پیاده سازی حلقه بی نهایت
در کادر پایین با کمک مثال سادهای روش کار حلقه های بینهایت در پایتون را پیادهسازی کردهایم.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Enter a number :20
You entered: 20
Enter a number :29
You entered: 29
Enter a number :3
You entered: 3
Enter a number :11
You entered: 11
Enter a number :22
You entered: 22
Enter a number :Traceback (most recent call last):
File "examples\test.py", line 5, in
num = int(input("Enter a number :"))
KeyboardInterruptتوجه: با اجرای کد بالا، کامپیوتر وارد حلقه بینهایتی میشود. این برنامه هرگز متوقف نمیشود، حتی با وارد کردن کاراکترهای نامعتبر. برای متوقف کردن آن باید از ترکیب دکمههای «CTRL» و «C» استفاده کنیم.
حلقه while-else در پایتون
در زبان برنامه نویسی پایتون میتوانیم از بلوک else به صورت یکپارچه با حلقه while هم استفاده کنیم. اگر عبارت else بعد از حلقه while و به صورت یکپارچه با آن - در دندانهگذاری مساوی - نوشته شود، دستورات داخل این بلوک بلافاصله بعد از False شدن while و قبل از رفتن مفسر به سراغ خطوط اصلی برنامه، اجرا میشوند.
فلوچارت حلقه while-else در پایتون
در نمودار پایین، مسیر اجرای کدها در حلقه while-else به صورت ساده نشان داده شده است.

مثال: ترکیب بلوک else با حلقه while
در مثال پایین، از ترکیب عبارت else با حلقه while استفاده کردهایم.
- تا وقتی که مقدار متغیر count کمتر از 5 است، هربار اندازه count یک واحد زیاد شده و شماره پیمایش در خروجی چاپ میشود.
- به محض مساوی شدن count با 5، دستور print() درون بلوک else اجرا میشود.
- سپس اجرای برنامه از اولین خط بعد از بلوک while-else ادامه پیدا میکند.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Iteration no. 1
Iteration no. 2
Iteration no. 3
Iteration no. 4
Iteration no. 5
While loop over. Now in else block
End of while loopحلقه های تو در تو در پایتون
یکی از جذابترین حلقه ها در پایتون، حلقه های تو در تو هستند. وقتی که یک یا چند حلقه مختلف را در داخل حلقه دیگری بنویسیم، «حلقه تو در تو» (Nested Loop) ساخته میشود. به حلقه اصلی، «حلقه خارجی» (Outer Loop) و به حلقه های تعریف شده در آن «حلقه داخلی» (Inner Loops) میگویند.
زبان برنامه نویسی پایتون به توسعهدهندگان اجازه میدهد که حلقهای را در داخل حلقه دیگری تعریف کنند. میدانیم که وظیفه حلقه ها اجرای تکراری دستورات است. برای اجرای حلقه به صورت تو در تو هم میتوانیم از حلقه های for و while استفاده کنیم.
نکته: هر نوع حلقهای را میتوان در داخل هر نوع حلقه دیگر نوشت. برای مثال میتوانیم درون حلقه while، حلقه for بنویسیم و برعکس.
حلقه for تو در تو در پایتون
به حلقه های for که در داخل آنها یک یا چند حلقه for دیگر نوشته شدهاند، حلقه for تو در تو گفته میشود. از حلقه های for برای پیمایش عناصر موجود در توالیهای مختلفی مانند لیست، تاپل و رشته استفاده میکنیم. با کمک حلقه for میتوان عملیات یکسانی را بر روی تمام عناصر موجود در این توالیها یک به یک اجرا کرد.
سینتکس حلقه for تو در تو
در کادر پایین، سینتکس نوشتن حلقه for تو در تو را پیادهسازی کردهایم. در این سینتکس برای نمایش ساده از دو حلقه for استفاده شده است، اما هیچ محدودیتی در تعداد حلقه ها وجود ندارد.
مثال: نمایش روزها و ماههای سال در کنار هم
در کادر پایین لیستی برای نمایش ماهها و لیست دیگری شامل روزهای هفته تعریف شدهاند. از حلقه for به صورت تو در تو برای پیمایش ماهها و روزهای هفته استفاده کردهایم.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
jan sun
jan mon
jan tue
feb sun
feb mon
feb tue
mar sun
mar mon
mar tue
Good bye!حلقه while تو در تو در پایتون
یکی دیگر از انواع حلقه ها در پایتون، حلقه while تو در تو است. به حلقه while که در آن یک یا چند حلقه while دیگر تعریف شدهاند، حلقه while تو در تو میگوییم. از حلقه های while برای اجرای بلوکهای کد به تعداد نامشخص استفاده میکنیم. این حلقه فقط وقتی متوقف میشود که ارزش بولین عبارت شرطی تعریف شده برای آن برابر با False شود.

سینتکس حلقه while تو در تو
در کادر پایین سینتکس حلقه while تو در تو را نوشتهایم. در این مثال هم برای سادگی نمایش از دو حلقه while استفاده کردیم. اما هیچ محدودیتی در تعداد حلقه های while وجود ندارد.
مثال: کشف اعداد اول
در برنامه زیر از حلقه while به صورت تو در تو برای پیدا کردن اعداد اول بین 2 تا 100 استفاده کردهایم.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
2 is prime
3 is prime
5 is prime
7 is prime
11 is prime
13 is prime
17 is prime
19 is prime
23 is prime
Good bye!break در حلقه ها در پایتون
عبارت break در پایتون برای متوقف کردن عملیات حلقه ها و خروج از آنها طراحی شده است. بعد از برخورد مفسر پایتون با دستور break در بدنه حلقه، بلافاصله عملیات حلقه متوقف شده و ادامه اجرای برنامه از اولین کد بعد از بلوک حلقه پیگیری میشود. عملکرد دستور break در پایتون مانند دستور break در زبان C است.
از دستور break در پایتون زمانی استفاده میشود که در صورت به وجود آمدن شرایط مشخصی باید اجرای حلقه متوقف شود. از break میتوان هم در حلقه for استفاده کرد و هم حلقه while.
اگر در حال کار با حلقه های تو در تو باشیم، دستور break فقط عملکرد حلقهای را متوقف میکند که در آن نوشته شده است. یعنی اگر این دستور درون حلقه درونی باشد، بلافاصله اجرای آن حلقه متوقف شده و ادامه کار برنامه از گردش فعلی در حلقه بیرونی پیگیری میشود.
سینتکس عبارت break
در کادر پایین روش استفاده از دستور break را با کمک سینتکس آن بررسی کردهایم.
- looping statement: عبارت مربوط به حلقه است.
- condition check: دستور شرطی است. در صورت برقرار بودن این شرط، دستور break اجرا میشود.
فلوچارت حلقه با دستور break
در فلوچارت پایین روش کار حلقه با وجود دستور break نمایش داده شده است.

مثال: دستور break در حلقه for
با استفاده از دستور break در حلقه for، میتوان جریان عادی برنامه را بهم زد و قبل از تکمیل پیمایش حلقه از آن خارج شد. در کادر پایین، روش استفاده از دستور break را در حلقه for بررسی کردهایم.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Current Letter : P
Current Letter : y
Current Letter : t
Good bye!مثال دستور break در حلقه while
از دستور break میتوان در حلقه while هم برای متوقف کردن جریان عادی حلقه استفاده کرد. فقط توجه کنید که برای بررسی حالت باید از شرط استفاده کنیم.
در کد زیر، روش استفاده از دستور break درون حلقه while را نشان دادهایم.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Current variable value : 10
Current variable value : 9
Current variable value : 8
Current variable value : 7
Current variable value : 6
Good bye!دستور break در حلقه های تو در تو
میدانیم که حلقه تو در تو یکی از انواع رایج و پرکاربر حلقه ها در پایتون است. وقتی که از دستور break در حلقه های تو در تو استفاده میکنیم یکی از دو حالت زیر اتفاق میافتد.
- اگر دستور break درون حلقه درونی نوشته شده باشد، فقط حلقه درونی متوقف شده و برنامه با اجرای دستورات بعد از آن ادامه پیدا میکند. توجه کنید که اگر هیچ دستوری بعد از آن نوشته نشده باشد، اجرای حلقه بیرونی به مرحله بعد میرود. در دور بعدی دوباره حلقه درونی اجرا خواهد شد.
- وقتی که عبارت break در حلقه بیرونی تعریف شود، با رسیدن مفسر پایتون به آن اجرای هر دو حلقه بیرونی و درونی متوقف شده و فرایند برنامه از اولین کد بعد از حلقه بیرونی ادامه پیدا میکند.
مثال: پیدا کردن عدد مشخص در ماتریس
در برنامه زیر، مثال سادهای برای نمایش کاربرد دستور break در حلقه for بررسی شده است. این حلقه بر روی لیست numbers کار میکند. این لیست به شکل ماتریس نوشته شده است. در داخل آن به دنبال عدد 33 میگردیم. بنابراین باید از حلقه های تو در تو استفاده کنیم. بعد از پیدا شدن نتیجه، دیگر نیازی به ادامه حلقه نیست. پس با عبارت break از آن خارج میشویم.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
number found in listکاربرد عبارت continue در حلقه ها در پایتون
از عبارت continue در پایتون برای توقف اجرای این دور از حلقه و شروع دور بعدی استفاده میشود. هر وقت که برنامه در بدنه دستورات حلقه با عبارت continue روبهرو شود، از اجرای ادامه دستورات حلقه در این دور صرف نظر کرده و بلافاصله دور بعدی حلقه را شروع میکند. البته قبل از شروع دور بعد، عبارت شمارنده در حلقه for یا برقرار بودن شرط حلقه while بررسی میشوند.

عبارت continue دقیقا برعکس break عمل میکند. این عبارت فقط از اجرای باقیمانده دستورات حلقه در دور فعلی صرف نظر میکند، اما از حلقه خارج نمیشود.
سینتکس عبارت continue در حلقه ها در پایتون
در کادر پایین سینتکس دستور continue را در حلقه نوشتهایم.
در سینتکس بالا بهجز continue دو عبارت دیگر وجود دارند. آنها را در فهرست پایین معرفی کردهایم.
- looping statement: کد مربوط به تعریف حلقه است.
- condition check: عبارت شرطی است که در صورت برقرار بودن آن دستور continue اجرا میشود.
فلوچارت حلقه با دستور continue
در فلوچارت پایین روش کار حلقه با وجود دستور continue نمایش داده شده است.

مثال: دستور continue با حلقه for
در زبان پایتون میتوان از عبارت continue برای مدیریت حلقه for استفاده کرد. درون حلقه، باید دستور if را برای بررسی شرط خاصی بنویسیم. در صورت برقرار بودن شرط با اجرای دستور continue از دور فعلی اجرای حلقه خارج شده و به دور بعد میرویم. در این صورت، باقی کدهای بعد از continue نادیده گرفته میشوند.
در کادر زیر از دستور continue در حلقه for استفاده کردهایم. با این روش، از نمایش حرف h در کلمه python جلوگیری شده است.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : o
Current Letter : n
Good bye!دستور continue با حلقه while
دستور continue در پایتون با حلقه while هم مانند حلقه های for کار میکند. یعنی از اجرای ادامه دستورات در این دور از حلقه منصرف شده و مستقیم به سراغ اجرای دور بعدی حلقه - در صورت برقرار بودن شرط while - میرود.
در کد پایین میخواهیم برنامهای برای شناسایی عوامل اول عدد داده شده بنویسیم. در حل این مسئله از حلقه while و دستور continue استفاده میکنیم. برای پیدا کردن عاملهای اول آن عدد ابتدا باید عدد داده شده را تقسیم بر دو کنیم. اگر عدد بر دو بخشپذیر بود، آن را چاپ میکنیم و سپس نتیجه را محاسبه میکنیم. نتیجه تقسیم را در متغیر num ذخیره کرده و سپس مقسوم علیه را یک واحد افزایش میدهیم.این فرایند به همین شکل ادامه پیدا میکند تا زمانی که باقیمانده برابر با ۱ یا کمتر از آن شود.
بعد از اجرای کد بالا، با فرض اینکه در ورودی عدد 60 را نوشتهایم، خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Prime factors for: 60
2
2
3
5اکنون عدد دیگری را در ورودی وارد میکنیم. برای مثال عدد 75 را نوشتهایم. بعد از آن، نتایج بدست آمده به شکل زیر نمایش داده خواهند شد.
Prime factors for: 75
3
5
5پیاده سازی پروژه های پایتون در فرادرس
بهترین روش برای کسب تسلط کامل بر روی سینتکس پایتون و ساختارهای کنترلی آن، کار با آنها در پروژههای واقعی است. زبان پایتون در حوزههای متنوعی کاربرد دارد. بنابراین پروژههای مختلفی را میتوان با کمک آن پیادهسازی کرد. فرادرس تلاش کرده است تا روش پیادهسازی پروژههای متنوع را با کمک پایتون آموزش بدهد. در زمان اجرای این پروژهها شاید لازم شود از چند کتابخانه مختلف در کنار هم استفاده کنیم. گاهی از اوقات باید با انواع ساختارهای حلقه در پایتون کار کنیم. به همین دلیل پیادهسازی پروژههای عملی تاثیری زیادی در یادگیری پایتون دارند.
در پایین چند مورد از فیلمهای پروژهمحور پایتون را معرفی کردهایم.
- فیلم آموزش ساخت دستیار هوشمند با Ollama و پروتکل MCP، پیادهسازی پروژه عملی LLM
- فیلم آموزش پروژه محور پایتون، کار با Tkinter و SQLite3 در Python + گواهینامه
- فیلم آموزش کاربرد پایتون در مهندسی شیمی، از مبانی تا حل معادلات پیشرفته
- فیلم آموزش مدیریت موجودی انبار در پایتون، پیاده سازی پروژه اپلیکیشن گرافیکی سیستم انبارداری
- فیلم آموزش پروژه محور پایتون، درباره ساخت دستیار صوتی، از طراحی توابع تا اجرای برنامه
در صورت تمایل با کلیک بر روی تصویر زیر به صفحه اصلی این مجموعه آموزشی هدایت شده و فیلمهای پروژهمحور بیشتری را تماشا کنید.

کاربرد عبارت pass در حلقه ها در پایتون
از عبارت pass در پایتون، زمانی استفاده میکنیم که از لحاظ سینتکسی باید دستور خاصی نوشته شود، اما برنامه نویسان نمیخواهند هیچ کدی را اجرا کنند. عبارت pass در زمان اجرا هیچ کاری انجام نمیدهد. اغلب اوقات از عبارت pass به عنوان «نگهدارنده فضا» (Placeholder) استفاده میشود. یعنی برنامه نویسان جایی از pass استفاده میکنند که در حال حاضر ایدهای ندارند اما باید در آینده آنجا برنامه نویسی کنند. تنها هدف فعلی از نوشتن این کد آن است که به برنامه برای اجرای بدون خطا کمک کنند.
برای نمونه، در توابع یا تعریف کلاسهایی که هنوز پیادهسازی نشدهاند، برای جلوگیری از بروز خطا سینتکس میتوانیم عبارت pass را بنویسیم. علاوه بر این در داخل عبارتهای کنترل جریان برنامه - مانند for و while - هم میتوانیم از عبارت pass به عنوان Placeholder استفاده کنیم.
برای نوشتن دستور pass فقط کافی است که این کلمه را در خطی مجزا از دیگر کدها بنویسیم.
مثال: استفاده از pass در حلقه for
در کد پایین، روش استفاده از عبارت pass را در حلقه for در پایتون بررسی کردهایم.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Current Letter : y
Current Letter : t
This is pass block
Current Letter : h
Current Letter : o
Current Letter : n
Good bye!مثال: حلقه بینهایت با کمک عبارت pass
با کمک عبارت pass به راحتی میتوان حلقه بینهایت در پایتون ایجاد کرد. در کادر زیر، حلقه بینهایتی را نوشتهایم که در واقع هیچ کاری انجام نمیدهد. بلکه فقط بارها و بارها اجرا میشود.
از آنجا که بدنه حلقه فقط عبارت خالی است، مفسر پایتون بدون انجام دادن کار خاصی در این حلقه گیر میکند. برای به پایان رساندن اجرای این برنامه باید کلیدهای Ctrl و C را به صورت ترکیبی فشار دهید.
جمعبندی
در این مطلب از مجله فرادرس انواع حلقه ها در پایتون را بررسی کردهایم. به طور کل انواع حلقه ها به ساختارهای for و while تقسیم میشوند. البته در زبان برنامه نویسی پایتون میتوان از بلوک else هم در انتهای حلقه ها استفاده کرد. دستورات این بلوک بلافاصله با پایان روند عادی کار حلقهها اجرا میشوند. مفسر پایتون فقط وقتی دستورات بلوک else را نادیده میگیرد که روند طبیعی کار حلقه با روبهرو شدن با دستور break متوقف شود. حلقه بینهایت یکی از حلقه های کاربردی و در عین حال خطرناک پایتون است. برای نوشتن این حلقه ها بهتر است که از while استفاده کنیم.
ساختارهای کنترل حلقه با عبارتهای break و continue و pass نامگذاری شدهاند. هر کدام از این ساختارها با هدف انجام وظیفه منحصر به فردی به کار برده میشوند. نوع دیگری از حلقه ها حلقه تو در تو هستند. در این ساختار میتوان یک یا چند حلقه مختلف را در داخل همدیگر به شکل موازی یا عمقی تعریف کرد. در زبان برنامه نویسی پایتون با کمک حلقه های تو در تو، بلوک else و ساختارهای کنترل حلقه میتوانیم، مسیرهای اجرای کد پیچیدهای را طراحی کنیم. به همین دلیل برنامه نویسان پایتون باید در کار با انواع حلقه مهارت پیدا بکنند.












