در پایتون ، یک حلقه درون یک حلقه به عنوان یک حلقه تو در تو شناخته می شود. در این آموزش ، ما با کمک نمونه ها در مورد حلقه های تو در تو در پایتون آشنا خواهیم شد.
همچنین ، حل کنید:
فهرست مطالب
حلقه تو در تو در پایتون چیست؟
یک حلقه تو در تو یک حلقه در داخل بدن حلقه بیرونی است. حلقه داخلی یا بیرونی می تواند هر نوع ، مانند حلقه مدتی یا برای حلقه باشد. به عنوان مثال ، حلقه بیرونی برای حلقه می تواند حاوی حلقه مدتی باشد و بالعکس.
حلقه بیرونی می تواند حاوی بیش از یک حلقه داخلی باشد. هیچ محدودیتی در زنجیره حلقه ها وجود ندارد.
در حلقه تو در تو ، تعداد تکرارها برابر با تعداد تکرارهای موجود در حلقه بیرونی ضرب شده توسط تکرارها در حلقه داخلی خواهد بود.
در هر تکرار از حلقه داخلی حلقه بیرونی تمام تکرار آن را اجرا کنید. برای هر تکرار از یک حلقه بیرونی ، حلقه داخلی دوباره شروع کرده و اجرای آن را تکمیل می کند قبل از اینکه حلقه بیرونی بتواند به تکرار بعدی خود ادامه دهد.
حلقه های تو در تو به طور معمول برای کار با ساختار داده های چند بعدی مانند چاپ آرایه های دو بعدی استفاده می شود و لیستی را که شامل یک لیست تو در تو است ، تکرار می کند.
یک حلقه تو در تو بخشی از بیانیه جریان کنترل است که به شما کمک می کند تا اصول اولیه پایتون را درک کنید.
پایتون برای حلقه تو در تو است
در پایتون ، از حلقه برای تکرار در سکانس مانند لیست ، رشته ، Tuple ، سایر اشیاء قابل تکرار مانند دامنه استفاده می شود.
نحو استفاده از یک حلقه برای حلقه در پایتون
در این مثال ، ما از یک حلقه برای حلقه برای حلقه استفاده می کنیم. در این مثال ، ما در حال چاپ یک جدول ضرب از ده شماره اول هستیم.
- Outer for Loop از عملکرد دامنه () برای تکرار در ده عدد اول استفاده می کند
- حلقه داخلی برای هر شماره بیرونی ده بار اجرا می شود
- در بدنه حلقه داخلی ، ضرب شماره و شماره فعلی را چاپ خواهیم کرد
- حلقه داخلی چیزی جز بدنه یک حلقه بیرونی نیست.
پایتون برای حلقه تو در تو است
مثال: برای چاپ جدول ضرب در پایتون ، یک برنامه برای حلقه بنویسید
خروجی:
- در این برنامه ، حلقه بیرونی برای شماره های 1 تا 10 است. دامنه () 10 عدد را برمی گرداند. بنابراین تعداد کل تکرار حلقه بیرونی 10 است.
- در اولین تکرار حلقه تو در تو ، تعداد 1 است. در مرحله بعد ، آن 2. و غیره تا 10.
- در مرحله بعد ، برای هر تکرار از حلقه بیرونی ، حلقه داخلی ده بار اجرا می شود. حلقه داخلی نیز ده بار اجرا می شود زیرا ما در حال چاپ جدول ضرب تا ده هستیم.
- در هر تکرار یک حلقه داخلی ، ضرب دو عدد را محاسبه کردیم.
حلقه تو در تو برای چاپ الگوی
یکی دیگر از متداول ترین استفاده ها از حلقه تو در تو ، چاپ الگوهای مختلف ستاره و شماره است.
بیایید ببینیم چگونه می توان از یک حلقه تو در تو برای چاپ الگوی زیر در پایتون استفاده کرد.
الگو :
برنامه:
- در این برنامه ، حلقه بیرونی تعداد ردیف های چاپی است.
- تعداد ردیف ها پنج است ، بنابراین حلقه بیرونی پنج بار اجرا می شود
- در مرحله بعد ، حلقه داخلی تعداد کل ستون ها در هر سطر است.
- برای هر تکرار از حلقه بیرونی ، تعداد ستون ها توسط 1 افزایش می یابد
- در اولین تکرار حلقه بیرونی ، تعداد ستون 1 است ، در قسمت بعدی 2 و غیره.
- تکرار حلقه داخلی برابر با تعداد ستون ها است.
- در هر تکرار یک حلقه داخلی ، ما ستاره را چاپ می کنیم
در حالی که حلقه درون یک حلقه است
استفاده از یک نوع حلقه در داخل دیگری بسیار رایج و مفید است. ما می توانیم یک حلقه مدتی را درون حلقه قرار دهیم.
فرض کنید ما می خواستیم هر نام را از یک لیست پنج بار تکرار کنیم.
- در اینجا ما لیست را با استفاده از یک حلقه بیرونی تکرار خواهیم کرد
- در هر تکرار بیرونی برای حلقه ، داخلی برای حلقه پنج بار برای چاپ نام فعلی پنج بار اجرا می شود
خروجی:
تمرین: یک الگوی مستطیل را با 5 ردیف و 3 ستون ستاره چاپ کنید
تمرین حلقه تو در تو در تو را حل کنید.
چاپ زیر مستطیل ستاره ها
حلقه تو در تو
عبارت Break در داخل حلقه برای خروج از حلقه استفاده می شود. اگر عبارت Break در داخل یک حلقه تو در تو استفاده شود (حلقه درون یک حلقه دیگر) ، حلقه درونی ترین را خاتمه می دهد.
در مثال زیر ، دو حلقه داریم. بیرونی برای حلقه چهار عدد اول را با استفاده از عملکرد () () () و حلقه داخلی نیز چهار عدد اول را تکرار می کند. اگر شماره بیرونی و تعداد فعلی حلقه داخلی یکسان باشد ، حلقه داخلی (تو در تو) را بشکنید.
مثال :
خروجی:
همانطور که در خروجی مشاهده می کنید ، هیچ ردیف حاوی همان تعداد نیست.
حلقه تو در تو را ادامه دهید
بیانیه ادامه تکرار فعلی را رد می کند و به تکرار بعدی منتقل می شود. در پایتون ، هنگامی که بیانیه ادامه در داخل حلقه مشاهده می شود ، تمام گفته های زیر آن را رد می کند و بلافاصله به تکرار بعدی می رود.
در مثال زیر ، دو حلقه داریم. Outer For Loop لیست اول را تکرار می کند ، و حلقه داخلی همچنین لیست دوم اعداد را تکرار می کند.
اگر شماره بیرونی و شماره فعلی حلقه داخلی یکسان هستند ، سپس به تکرار بعدی یک حلقه داخلی بروید.
مثال :
خروجی:
همانطور که در خروجی مشاهده می کنید ، هیچ عدد مشابهی به یکدیگر چند برابر نمی شود.
حلقه های توی تک خط با استفاده از درک لیست
به عنوان مثال ، اگر دو لیست داشتید و می خواهید همه ترکیبات آنها را بدست آورید ، برای دستیابی به این هدف ، باید از دو حلقه تو در تو استفاده کنید که در زیر ذکر شد.
شما می توانید با استفاده از فشرده سازی لیست و حلقه تو در تو مانند آنچه در زیر آمده است ، کد سریع و جمع و جور تری بنویسید.
چگونه آن را بنویسیم:
- ابتدا یک حلقه بیرونی بنویسید که لیست اول مانند [برای من در ابتدا] تکرار شود
- در مرحله بعد ، یک حلقه داخلی بنویسید که لیست دوم را بعد از حلقه بیرونی مانند [برای من در اول برای J در دوم] تکرار کنید.
- آخر ، اضافه کردن شماره بیرونی و شماره داخلی مانند [i+j برای من در اول برای j در دوم] محاسبه کنید.
- سرانجام ، در لیست جدیدی مانند Final = [I+J برای I در اول برای J در دوم قرار دارد]
بیایید نمونه های بیشتری را ببینیم.
در این مثال ، ما از دو حلقه در لیست درک لیست استفاده خواهیم کرد و نتیجه نهایی لیستی از لیست ها خواهد بود. ما در هر لیست همان اعداد را درج نمی کنیم. ما آنها را با استفاده از شرط IF فیلتر خواهیم کرد.
خروجی:
در حالی که حلقه در پایتون است
در پایتون ، بیانیه حلقه در حالی که بارها و بارها یک بلوک کد را اجرا می کند در حالی که یک شرط خاص صحیح است. وقتی تکرار تعداد ثابت نشود ، از حلقه W در حالی استفاده می کنیم.
در این بخش خواهیم دید که چگونه می توان از یک حلقه مدتی در داخل حلقه دیگر استفاده کرد.
نحو برای نوشتن یک تو در تو در حالی که بیانیه حلقه در پایتون به شرح زیر است:
مثال :
در این مثال ، 10 شماره اول را در هر خط 5 بار چاپ خواهیم کرد.
خروجی:
برای حلقه داخل در حالی که حلقه است
بعضی اوقات استفاده از یک نوع حلقه در داخل دیگر مفید است. ما می توانیم یک حلقه را درون حلقه در حالی قرار دهیم.
فرض کنید ما می خواستیم همه اعداد کامل را از 1 تا 100 چاپ کنیم
- در اینجا ما 100 عدد اول را با استفاده از حلقه مدتی تکرار خواهیم کرد
- در هر تکرار از حلقه بیرونی در حالی که حلقه داخلی برای حلقه از 1 تا شماره بیرونی فعلی اجرا می شود تا بررسی کنید که آیا شماره فعلی یک عدد مناسب است یا خیر.
چه موقع از یک حلقه تو در تو در پایتون استفاده کنیم؟
- حلقه های تو در تو در مواردی که آرایه ها یا لیست هایی را که باید از طریق همان عملکرد حلقه کنید ، مفید هستند.
- هنگامی که می خواهید الگوهای مختلف ستاره و شماره را با استفاده از ستون ها چاپ کنید
پیچیدگی زمان را در ذهن داشته باشید. بیایید این موضوع را با مثالهایی در مورد چگونگی کار حلقه در پایتون درک کنیم.
ما برای تکرار در مورد عناصر داده شده از یک دنباله یا قابل تکرار استفاده می کنیم. مانند من در لیست. در اینجا پیچیدگی زمان o (n) است زیرا ما همه موارد را از یک لیست تکرار می کنیم.
تعداد مراحل اعدام (تکرار) پیچیدگی زمان یک حلقه را تعیین می کند.
هنگامی که از یک حلقه تو در تو استفاده می کنید و هر دو حلقه بیرونی و داخلی بدون هیچ شرط در آن اجرا می شوند ، پیچیدگی زمان O (n^2) است زیرا ، برای همه عناصر n ، کد n بار اجرا می شود.
مثال :
خروجی:
اگر در حلقه داخلی شرایطی ایجاد کنید که بعد از برخی از عناصر ، اجرای آن را متوقف کند و تمام تکرارهای N حلقه داخلی یا حلقه بیرونی را اجرا نکنید ، پیچیدگی زمان کمتری خواهد داشت.
وقتی گزینه های بهتری ندارید از حلقه تو در تو استفاده کنید ، به یاد داشته باشید که نوشتن کد کارآمد و جمع و جور به مراتب بهتر از نوشتن کد پیچیده است.
آیا این صفحه برایتان سودمند بود؟بگذار بقیه هم در مورد آن بدانند. به اشتراک گذاری به من کمک می کند تا به ایجاد منابع رایگان پایتون ادامه دهم.
درباره ویشال
بنیانگذار pynative. com من یک توسعه دهنده پایتون هستم و دوست دارم برای کمک به توسعه دهندگان مقاله بنویسم. مرا در توییتر دنبال کنید. بهترین ها برای تلاش های آینده پایتون شما!
موضوعات آموزش مرتبط:
تمرین های پایتون و آزمونها
تمرینات برنامه نویسی رایگان و آزمونها اصول اولیه پایتون ، ساختار داده ، تجزیه و تحلیل داده ها و موارد دیگر را پوشش می دهد.< SPAN> هنگامی که از یک حلقه تو در تو استفاده می کنید و هر دو حلقه بیرونی و داخلی بدون هیچ شرط در آن اجرا می شوند ، پیچیدگی زمان O (n^2) است زیرا ، برای همه عناصر n ، کد n بار اجرا می شود.