در پایتون iteration به این معنی هست که یک بلوک کد را چندین بار اجرا کنید. ساختار برنامه نویسی که iteration را پیاده سازی می کند حلقه نامیده می شود. در پایتون دو نوع حلقه وجود دارد. حلقه for و حلقه while که در این آموزش تمرکز ما روی حلقه while خواهد بود.
با استفاده از حلقه while در پایتون میتوانید یک کار رو به صورت مکرر انجام دهید. این کار تا زمانی که یک شرایط خاص برای قطع کردن حلقه به وجود بیاد ادامه خواهد داشت. در پایتون، حلقه while برای تکرار دستورات به کار می رود و تا زمانی که یک شرط معین را برآورده سازد، اجرا می شود. و هنگامی که شرط نادرست شود، حلقه بلافاصله متوقف خواهد شد. حلقه while در دسته تکرار نامحدود قرار می گیرد. تکرار نامحدود به این معنی است که تعداد دفعات اجرای حلقه به طور صریح از قبل مشخص نشده است.
این حلقه با استفاده از کلمه کلیدی while و به دنبال آن شرط چرخش حلقه میآید:
while condition: #body_of_while
بخش
body_of_ while مجموعه ای از دستورات پایتون است که نیاز به اجرای مکرر دارد. این مجموعه از دستورات به طور مکرر اجرا می شوند تا زمانی که شرط داده شده False شود.
1. ابتدا شرط داده شده بررسی می شود، اگر شرط false باشد، حلقه خاتمه یافته و ادامه برنامه اجرا میشود.
2. اگر شرط درست شود، مجموعه دستورات داخل حلقه اجرا می شوند.
این دو مرحله مکرراً تا زمانی که شرط مشخص شده در حلقه while صادق باشد، تکرار می شوند.
در اینجا نمونه ای از حلقه while وجود دارد. در این مثال، ما یک متغیر num داریم و مقدار num را در یک حلقه نمایش می دهیم، حلقه دارای یک عملیات افزایشی است که در آن مقدار num را افزایش می دهیم. این مرحله بسیار مهم است، حلقه باید یک عملیات افزایش یا کاهش داشته باشد، در غیر این صورت حلقه به طور نامحدود اجرا می شود.
num = 1 while num < 10: print(num) num = num + 3 # OUTPUT 1 4 7
حلقه بینهایت به حلقهای گفته میشود که پایان ندارد و تا ابد اجرا خواهد شد. while بهترین ابزار برای ایجاد کردن حلقه بینهایت است. برای ایجاد کردن حلقه بینهایت به عنوان شرط میتوانید از کلمه True یا عدد 1 استفاده کنید. در این حالت چون شرط همیشه True است، حلقه تا ابد ادامه خواهد داشت. دقت کنید که استفاده از حلقه بینهایت خطرناک است زیرا منابع زیادی را مصرف میکند. حتما در زمان استفاده از حلقه بینهایت شرطی را مشخص کنید که حلقه را متوقف کند.
مثال اول: در کد زیر، کلمه "hello" به طور نامحدود چاپ می شود زیرا شرط همیشه True است:
while True: print("hello")
مثال دوم: این مثال عدد 1 را به طور نامحدود چاپ می کند زیرا در داخل حلقه، ما مقدار num را تغییر نمیدهیم، بنابراین مقدار num همیشه 1 باقی می ماند و شرط num <5 همیشه درست است:
num = 1 while num<5: print(num)
میتوانید حلقهها را داخل یکدیگر قرار دهید. وقتی یک حلقه while داخل حلقه while دیگری وجود داشته باشد، آن را حلقه تو در تو می نامیم. بیایید برای درک این مفهوم مثالی بزنیم:
#statement(s) while condition_1: #statement(s) while condition_2: #statement(s)
در حلقههای تودرتو، به حلقه بیرونی outer و به حلقه درونی inner گفته میشود. نحوه کار به این شکل است به ازای هر چرخش در حلقه بیرونی، حلقه درونی به طور کامل چرخش خواهد کرد.
ما می توانیم یک بلوک "else" مرتبط با حلقه while داشته باشیم. بلوک "else" اختیاری است. این یک ویژگی اختصاصی برای پایتون است و در دیگر زبانهای برنامه نویسی پیدا نمیشود. بلوک else زمانی اجرا میشود که حلقه while به طور کامل اجرا شود:
num = 10 while num > 6: print(num) num = num-1 else: print("loop is finished") # OUTPUT 10 9 8 7 loop is finished
اما اگر حلقه به مشکل بخورد و نتواند به طور کامل اجرا شود، بلوک else اجرا نخواهد شد. به عنوان مثال اگر یک حلقه با break متوقف شود، بلوک else اجرا نخواهد شد:
num = 10 while num > 6: break print(num) num = num-1 else: print("loop is finished") # OUTPUT
در پایتون از دو حلقه while و for میتوان برای اجرای مکرر دستورات استفاده کرد. در ادامه به تفاوت های حلقه while و for پایتون میپردازیم.
برای اطلاع بیشتر درمورد تفاوت حلقه for و while میتوانید این سوال stackoverflow را ببینید.
برای آموزشهای پیشرفته پایتون به وبسایت ما سر بزنید: