پایتون A تا Z : دوره کامل توسعه پایتون برای مبتدیان

حلقه while در پایتون (دستورات و break و continue و else و حلقه ی بی پایان)

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

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

در نتیجه: این باعث صرفه جویی در تلاش زیادی می شود ، و همچنین پیچیدگی کد را کاهش می دهد.

اساساً ، در زبان های برنامه نویسی دو نوع تکرار وجود دارد:

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

حلقه های while

دستور while در پایتون با آنچه معمولاً در سایر زبان های برنامه نویسی استفاده می کنید کمی متفاوت است.

در حالت عادی شما از حلقه while برای کدی استفاده می کنید که تا زمانی که شرط True باشد ، آن کد تکرار شود.

معمولاً وقتی از این حلقه استفاده می کنید که از قبل نمی دانید چه تعداد تکرار لازم است .

فراموش نکنید که دستور while را از دستور حلقه for متفاوت است.


دستورات

Python-while-Loop-Syntax

در بالا ، یک کد ساده از حلقه while است. ابتدای حلقه شروع می شود و بررسی می کند که آیا شرط درست است یا نه. وقتی شرط True باشد ، به حلقه while اجرا می شود – و دستورات (تورفتگی) را در داخل حلقه while اجرا می کند. پس از یک بار تکرار ، دوباره شرط بررسی می شود. و این روند ادامه پیدا می کنه تا شرط  False شود.

به محض این که شرط False باشد  از حلقه while بیرون می پرد و به کدهای موجود در زیر بلوک حلقه while می روند تا ادامه کدهای برنامه را اجرا کند.

لطفاً توجه داشته باشید که پایتون هر مقدار غیر  از صفر یا دنباله خالی مثل [] را به عنوان True تفسیر می کند. یعنی ، هر دنباله صفر و خالی False تعبیر می شود. و اگر در ابتدا شرط False باشد ، حلقه while هرگز اجرا نمی شود.


مثال پایه ای
بیایید یک مثال عملی تر و بسیار ساده داشته باشیم ، بنابراین شما می توانید دستور استفاده صحیح از حلقه های پایتون را در برنامه خود کشف و درک کنید.

ابتدا ، یک عدد صحیح i را با مقدار 6 تعریف کنید. سپس ، کد تکرار شده را در داخل حلقه while تکرار کرده و اجرا می کنید ، که (i) چاپ می شود و متغیر i را کاهش می دهد. بنابراین ، در هر تکرار ، این عبارت دوباره ارزیابی می شود و همچنان اجرا می شود تا زمانی که False یا 0 شود .

در مثال فوق: اجرا با متغیر i = 6 شروع می شود و سپس آزمایش می کند که آیا عبارت  i وضعیت True است یا i = 0 (که معنی False  دارد) . تا زمانی که شرط True باشد ، دستورات داخل حلقه اجرا می کند. تا زمانی که False شود و بعد از مواجه شدن با False از حلقه while بیرون می پرد.

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

اجرا شروع می شود و بررسی می شود که آیا عبارت True است یا False. سپس ، به دنبال اولین مورد در دنباله یا هر چیز قابل تکرار بگردید. پس از اجرای عبارات در بلوک ، که مورد فعلی را در یک متغیر باز کرده و آن را چاپ می کنید ، شرایط را دوباره ارزیابی می کند و روند به طور مکرر ادامه می یابد: به دنبال مورد بعدی در دنباله می رود ، و آن را چاپ می کند تا زمانی که به آخرین مورد از این لیست ، yellow برسد و خالی شود.

گرفتی؟ در اینجا آخرین مثال وجود دارد ، هنگامی که می خواهید از طریق تک کاراکترهای یک رشته تکرار شود – زیرا یک رشته لیستی از کاراکترها است. این کد تک تک کاراکترهای my_string را چاپ می کند ، تا شرط “!”=! letter به عنوان False ارزیابی می کند ، یا اگر عکس آن باشد:

“!”==letter   به عنوان True باشد.


break ، در حلقه ی  while
در هر مثالی که تاکنون مشاهده کرده اید ، کل بدنه حلقه while در هر تکرار اجرا می شود. همه چیز بسیار خوب است ، اما کاملاً محدود است ، درست است؟ خوشبختانه ، پایتون دو کلمه کلیدی break و continue را ارائه می دهد که تکرار حلقه فعلی را زودهنگام ، حتی بدون بررسی عبارت شرطی خاتمه می دهد.

لطفا توجه داشته باشید که دو کلمه کلیدی break و continue همانند حلقه های for برای  حلقه های while می باشد.

حال ، بیایید نگاهی بیندازیم که چگونه می توانید از این دستورات کنترل استفاده کنید.

Break_Continue

break در پایتون یک دستور جریان کنترل است که به محض مواجهه با break برای خروج از اجرا استفاده می شود. دستور break ، بلافاصله به طور کامل یک حلقه را خاتمه می دهد .

بیایید درک کنیم که چگونه می توانید با استفاده از مثالی از دستور break در حلقه while استفاده کنید. بنابراین ، بگذارید بگوییم شما لیستی با رشته ها به عنوان موارد دارید. به محض مواجهه با رشته مورد نظر ، می خواهید با استفاده از دستور break از حلقه خارج شوید.

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

پس بیایید تمرین کنیم اما اکنون نوبت شماست. فرض کنید لیستی از رنگ ها دارید: [‘red’, ‘green’, ‘blue’, ‘yellow’] ، و می خواهید هر رنگی را چاپ کنید ، اما وقتی با “blue” مواجه شد حلقه را بشکنید. چگونه پیش می روید؟ چه خروجی می گیرید؟

در اینجا یک راه حل وجود دارد. ابتدا ، بیایید لیستی را تعریف کنیم که در آن همه رنگ ها را اضافه کرده باشیم [‘red’, ‘green’, ‘blue’, ‘yellow’].

سپس ، با استفاده از while colors ، در کل این لیست تکرار کنید. این یک تکرار کننده ایجاد خواهد کرد ، و متغیر رنگ اولین مقدار را در داخل لیست ، در هر تکرار دریافت می کند ، تا زمانی که اجرا به آخرین مورد از دنباله برسد و لیست خالی شود. وقتی با مورد “blue” رو به رو شد ، نمی خواهید کدی را که بعدی می آید اجرا کنید ، اما از حلقه خارج شوید. در تمام موارد دیگر ، همانطور که برای عبارت “else” وجود دارد ، شما می خواهید رنگ فعلی را چاپ کنید. همانطور که حدس زده اید حلقه “red” ، “green” چاپ می کند و به محض مواجه شدن با مورد blue متوقف می شود.

تبریک – شما فقط اولین حلقه while خود را به تنهایی نوشتید!


continue  در حلقه while

عالی! بیایید کمی عمیق تر شویم . فرض کنید این بار شما نمی خواهید از حلقه خارج شوید ، بلکه فقط از تکرار فعلی صرف نظر کنید و بقیه تکرارهای موارد بعدی را اجرا کنید.

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

مثال بالا مشابه مثال قبلی است اما به جای break ، اکنون از دستور continue استفاده کردیم. continue نیز یک دستور کنترل است ، اما تنها تفاوت این است که فقط تکرار فعلی را در حلقه رد می کند و با تکرار بعدی ادامه می دهد – سپس بقیه تکرارها را به هر حال اجرا می کند ، تا زمانی که شرط while نادرست شود.

در مثال بالا ، به محض اینکه حلقه با مورد “blue” روبرو می شود ، آن را وارد بلوک دستور if می کند ، جایی که دستور ادامه مورد فعلی را در حلقه جست و خیز می کند ، و سپس به تکرار بعدی ادامه می یابد ، و آیتم زرد است. این حلقه تکرار می شود تا زمانی که به مورد lat توالی برسد و منجر به چاپ “قرمز” ، “سبز” و “زرد” می شود – از آنجا که رنگ آبی پر شده است.


else  در حلقه while 
خوبه اما چگونه می توان پس از عبارت حلقه while برخی از کدها را اجرا کرد و همچنان کد را تمیز نگه داشت؟

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

اولین مورد زمانی است که مورد پیدا شده و با شکست مواجه می شود.

سناریوی دوم این است که حلقه به طور طبیعی و بدون مواجهه با عبارت break به پایان برسد.

حال ممکن است بخواهیم بدانیم کدام یک از این موارد دلیل کامل شدن و به اتمام رسیدن یک حلقه است.

یک روش این است که یک پرچم تنظیم کنید و بعد از پایان حلقه ، آن را بررسی کنید.

مورد دیگر ، استفاده از دستور else در پایان حلقه  است .

Python-while-Loop-Syntax

اگر حلقه به طور طبیعی وقتی شرط نادرست شود خاتمه یابد یا اگر از ابتدا شرط False بوده و وارد بدنه حلقه نشده باشد ، دستور else اجرا خواهد شد. از طرف دیگر ، اگر حلقه زودتر از موعد ، با شکست خاتمه یابد ، به هیچ وجه دستور else اجرا نمی شود.

در اینجا ساختار اصلی یک حلقه while-else وجود دارد. ابتدا فرض کنید شما لیستی را تعریف کرده اید که داخل آن چند رنگ وجود دارد.

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

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

تابع ()not_found_in_iterable  در این مثال هرگز فراخوانی نخواهد شد ، زیرا حلقه while به محض اینکه با مورد “blue” مواجه شود بلافاصه زودرس و ناتمام خاتمه می یابد .


حلقه بی نهایت
فرض کنید شما یک حلقه while نوشتید که از لحاظ تئوریک هرگز به پایان نمی رسد. عجیب به نظر می رسد ، درست است؟

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

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

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

بیایید به یک مثال عملی تر نگاهی بیندازیم. این برنامه تکرارهای بی نهایت را اجرا می کند ، مگر اینکه Ctrl + C را فشار دهید ، یا دستور کنترل break را در حلقه قرار دهید.

شرط موجود در عبارت while باید سرانجام False شود. در غیر این صورت ، این حلقه برای همیشه اجرا می شود ( ایجاد یک حلقه بی نهایت! )

خوشبختانه ، با استفاده از دستور break که کمی زودتر دیده اید ، می توانید با خیال راحت یک حلقه بی نهایت را در برنامه خود پیاده کنید. به این ترتیب ، به محض تحقق شرط ، این کلمه کلیدی break بلافاصله تکرار فعلی را قطع می کند و از حلقه بی نهایت خارج می شود و دستورات موجود بیرون از حلقه (پایین تر از حلقه) را ادامه می دهد.


جمع بندی
در این آموزش ، شما در مورد یک ساختار جدید ، در پایتون: تکرارهای بی نهایت – که به آن Loop نیز گفته می شود ، آموخته اید. این یکی از دستوراتی است که جریان اجرا در برنامه شما را کنترل می کند و یک بلوک کد را به طور مکرر اجرا می کند. همچنین می توانید رفتار حلقه while را با استفاده از دو دستور کنترل break ، و continue  تطبیق دهید ، هنگامی که می خواهید برخی از کدها را اجرا کنید ، یک بند اضافی و دیگری اضافه کنید ، فقط اگر این حلقه به طور طبیعی خاتمه یابد. همه این مفاهیم برای توسعه کد پایتون پیشرفته تر – و کاهش پیچیدگی آن بسیار مهم هستند.

در آموزش بعدی ، یکی از پرکاربردترین نوع داده را پیدا خواهید کرد: فرهنگ لغت! وقتی می خواهید یک جفت “key: value” را ذخیره کنید و به یک مقدار بسیار کارآمد دسترسی پیدا کنید ، به لطف کلید آن ، از این نوع داده ها استفاده می شود.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا