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

به شکل کلی دو نوع حلقه تکرار در پایتون وجود دارد for و while، کاربرد حلقه های تکرار زمانی مشخص می شود که شما نیاز داشته باشید قسمتی از برنامه به تعدادی مشخص و یا با تعداد نامشخص تکرار شود. حال با مثال هایی نحوه استفاده از این دو حلقه تکرار به همراه تفاوت آن ها را شرح خواهیم داد :
حلقه تکرار while
ساختار این نوع حلقه شبیه به ساختار حلقه هایی می باشد که در فرم بیان ریاضی الگوریتم با کمک شرط و پرش استفاده می شد، این حلقه به عنوان حلقه تکرار با تعداد نام مشخص نیز شناخته می شود، حلقه while دارای یک شرط اجرا می باشد، و نحوه عملکرد آن به این صورت می باشد که مفسر ابتدا شرط حلقه را بررسی می کند در صورتی که حاصل عبارت شرطی True باشد، دستورات داخل حلقه اجرا می شود و پس ار پایان دستورات حلقه مفسر مجدد به شرط ابتدای حلقه بر می گردد و دوباره آن را بررسی می کند در صورتی که هنوز حاصل عبارت شرطی هنوز برابر True باشد مجدد دستورات داخل حلقه اجرا می شود، ولی اگر حاصل عبارت شرطی False باشد حلقه به پایان رسیده و دیگر دستورات داخل آن اجرا نخواهد شد.
الگوی این حلقه به شکل زیر می باشد :
While شرط :
دستور1
دستور 2
.
.
.
دستور N
مثال : برنامه بنویسید تا اعداد 1 تا 6 را چاپ کند.
output :
مثال : برنامه ای بنویسید که تا زمانی که کاربر عدد صفر را وارد نکرده از ورودی عدد دریافت کند و مجموع آن ها را محاسبه کند، زمانی که کاربر صفر وارد کرد مجموع اعداد وارد شده را چاپ نماید.
در برنامه فوق از آنجایی که شرط while برای اجرای حلقه A > 0 می باشد و ما هنوز مقدار از ورودی نگرفته ایم به متغییر A مقدار پیشفرض یک را داده ایم تا برنامه وارد حلقه شود، از آن پس در حلقه هر بار A از ورودی خوانده می شود و در صورت صفر بودن ورودی، حلقه به پایان می رسد.
مثال : برنامه ای بنویسید که یک عدد از ورودی دریافت کرده و بگوید عدد چند رقمی است.
دستور break در while
این دستور در حلقه ها استفاده می شود و هر زمان از این دستور استفاده می کنیم در هر جای حلقه که اجرا شود تمام دستورات بعد از Break نادیده گرفته می شود و از بدنه حلقه خارج می شود.
مثال : برنامه بنویسید تا اعداد 1 تا 3 را چاپ کند.
output :
همانطور که در مثال بالا مشاهده می کنید به جای شرط در حلقه از مقدار True استفاده شده، لذا شرط حلقه ما همیشه True یا درست خواهد بود و هیچگاه متوقف نمی شود، به این نوع حلقه ها اصطلاحا حلقه های بی نهایت گفته می شود. ولی درون حلقه شرطی وجود دارد که باعث می شود اگر شمارنده برابر 3 شود دستور Break اجرا شده و از حلقه خارج شود.
دستور continue در while
این دستور درون حلقه باعث می شود تا هر جای حلقه که باشد سایر دستورات بعد از Continue اجرا نمیشود و اجرای برنامه به ابتدای حلقه منتقل می شود.
مثال : برنامه بنویسید تا اعداد 1 تا 6 را بجز عدد 3 چاپ کند.
output :
در برنامه فوق درون حلقه توسط یک شرط بررسی می شود که اگر مقدار شمارنده (i) برابر 3 شود با کمک دستور Continue به ابتدای حلقه می رود و دستورات زیر دستور Continue اجرا نمی شوند بنابراین دستور print اجرا نشده و عدد 3 چاپ نمی شود.
حلقه تکرار For
این نوع حلقه ها در پایتون، به حلقه های تکرار بر روی یک دنباله نیز معروف هستند، در حلقه های تکرار for در پایتون تعداد تکرار برابر تعداد عناصر دنباله مد نظر (list , tuple , range , set , dect , string) می باشد. به این معنی که حلقه به تعداد عناصر موجود در دنباله، تکرار می شود. به این شکل که در هر مرحله شمارنده به ترتیب عناصر داخل عنصر دنباله را داخل متغییر شمارننده قرار می دهد و به ازای آن یک بار دستورات زیر حلقه اجرا می شود، این کار مادامی که عناصری داخل دنباله وجود داشته باشد ادامه دارد و با پایان عناصر حلقه نیز به پایان می رسد، این یعنی تعداد تکرار حلقه for وابسته به تعداد عناصر دنباله متصل به آن است. برای درک بهتر عملکرد حلقه های for به مثال زیر توجه کنید.
output :
همانطور که در برنامه بالا مشاهده می کنید لیستی از اسامی میوه ها را به حلقه for متصل کردیم و در هر مرحله اجرای حلقه یک از اسامی میوه ها به متغییر x نصبت داده می شود و با دستور print این نام در خروجی چاپ می شود.
output :
مثال : برنامه ای بنویسید که مجموع اعداد یک تا N را محاسبه و چاپ نماید.
output :
دستورbreak در حلقه For
این دستور عملکردی مشابه با عملکرد break در حلقه های while دارد و به شما این امکان رو می دهد تا هرگاه لازم دانستیم حلقه را متوقف کرده و از حلقه خارج شویم، برای درک بهتر به مثال های زیر توجه فرمایید.
مثال : برنامه ای بنویسید که اسامی میوه های موجود در لیست را به ترتیب تا رسیدن به “banana” در خروجی چاپ نماید.
output :
اگر در برنامه قبل محل دستور print را به بعد از بررسی شرط x == “banana” قرار دهیم خروجی ما چه تغییر خواهد کرد؟
output :
همنطور که مشاهده می کنید با جابجایی دستور چاپ باعث چاپ نشده نام “banana” در خروجی شدیم، این تغییر به آن علت است که در برنامه قبل در ابتدای حلقه اول نام میوه چاپ می شود سپس شرط بررسی می شود، ولی در این کد با جابجایی درسور چاپ، ابتدا شرت بررسی می شود و اگر شرط برقرار باشد break اجرا شده و دیگر دستور چاپ نام میوه اجرا نمی شود.
دستور continue در حلقه for
این دستور به شما کمک می کند در صورتی که به دستورcontinue برسد از همان خط برنامه به ابتدای حلقه رفته و سایر دستورات زیر این دستور در حلقه اجرا نمی شود.
مثال : برنامه ای بنویسید که تمامی اسامی میوه های موجود در لیست بجز نام “banana” در خروجی چاپ نماید.
output :
مثال : برنامه ای بنویسید که دنباله ای از اعداد 1 تا 5 را در خروجی چاپ نماید.
output :
مثال : برنامه ای بنویسید که دنباله زیر را تولید نماید.
2, 5, 8, 11, 14, 17, 20, 23, 26, 29
output :
حلقه های تو در تو
نکته : می توان در صورتی که به اندیس شمارنده در حلقه نیازی ندارید از متغییر در آن استفاده نکرد :
output :
همانطور که در مثال فوق مشاهده کردید آندرلاین ‘_ ‘می تواند جایگزین متغییر گردد و دیگر نیازی به تعریف متغییر نیست.
دیدگاهتان را بنویسید