حلقه چیست؟
حلقه ها میتوانند یک بلوک کد را تا برآورده شدن یک شرط مشخص، چندین بار اجرا کنند. کاربرد آنها در برنامهنویسی بسیار متداول است. در این آموزش حلقه ها در پایتون را یادخواهیم گرفت.
حلقه For چیست؟
حلقه For برای شمارش عناصر یک دنباله به کار میرود. این حلقه بیشتر در شرایطی به کار میرود که بخواهید یک تکه کد را به تعداد مشخص n بار تکرار کنید.
حلقه While چیست؟
حلقه While برای تکرار یک بلوک کد استفاده میشود. بجای یکبار اجرا کردن بلوک، آن را تازمان برآورده شده یک شرط مشخص، چنیدن بار اجرا میکند. در این قسمت کاربرد while در برنامه نویسی و پایتون را یاد خواهیم گرفت.
نحوه بکارگیری حلقه While
حلقه while دقیقاً همان کار دستور if را انجام میدهد، اما به جای اینکه بلوک کد را تنها یکبار انجام دهد، به نقطه شروع کد برگشته و کل پروسه را تکرار خواهد کرد.
ساختار
while expression Statement
مثال
# #Example file for working with loops # x=0 #define a while loop while(x <4): print(x) x = x+1
خروجی
0 1 2 3
- خط 4: متغیر x به 0 ست میشود.
- خط 7: حلقه while شرط x<4 را بررسی میکند. مقدار فعلی x برابر 0 است. شرط درست میباشد. کنترل جریان برنامه وارد حلقه while میشود.
- خط 8: مقدار x چاپ میشود.
- خط 9: x یک واحد افزایش مییابد. کنترل جریان برنامه به خط 7 بازمیگردد. اکنون مقدار x برابر 1 است که کوچکتر از 4 میباشد. شرط درست است، و مجدداً حلقه while اجرا میشود. این روند ادامه یافته تا x برابر 4 شود، و آنگاه شرط while نادرست میشود.
نحوه استفاده از حلقه For
در پایتون، به حلقه های for شمارنده (iterator) گفته میشود.
درست شبیه حلقه while، حلقه For نیز برای تکرار برنامه بکار میرود.
اما برخلاف حلقه while که متکی به درست یا نادرست بودن شرط بود، حلقه For به عنصر شمارنده آن وابسته است.
مثال
# #Example file for working with loops # x=0 #define a while loop # while(x <4): # print x # x = x+1 #Define a for loop for x in range(2,7): print(x)
خروجی
2 3 4 5 6
حلقه For همراه عدد اعلان شده در range شمارش میکند.
برای مثال
For Loop for x in range (2,7)
وقتی این کد اجرا میشود، اعداد بین 2 و 7 چاپ میشوند (2,3,4,5,6). در این کد، عدد 7 درون محدوده range قرار نمیگیرد.
حلقه های for را میتوان برای دیگر چیزها به غیر از اعداد نیز به کار بست. در بخش بعدی این مسئله را مشاهده خواهیم کرد.
نحوه استفاده از حلقه For برای رشته ها
در این مرحله، خواهیم دید که چگونه حلقه For را برای چیزهایی به غیر از اعداد به کار ببندیم.
مثال
#use a for loop over a collection Months = ["Jan","Feb","Mar","April","May","June"] for m in Months: print(m)
خروجی
Jan Feb Mar April May June
خط 3: ماهها (Jan, Feb , Mar,April,May,June) را در متغیر Months ذخیره میکنیم.
خط 4: با حلقه For روی هر مقدار از Months شمارش میکنیم و مقدار جاری Month در متغیر m ذخیره میشود.
خط 5: نام هر ماه را چاپ میکنیم.
نحوه استفاده از دستور break در حلقه For
Breakpoint یک تابع یکتا در حلقه For است که به شما امکان میدهد تا اجرای حلقه For را شکسته و به آن پایان دهید.
مثال
#use a for loop over a collection #Months = ["Jan","Feb","Mar","April","May","June"] #for m in Months: #print m # use the break and continue statements for x in range (10,20): if (x == 15): break #if (x % 2 == 0) : continue print(x)
خروجی
10 11 12 13 14
در این مثال، اعداد را از 10 تا 20 اعلان کرده ایم اما قصد داریم حلقه for را در عدد 15 شکسته و از اجرای بیشتر آن جلوگیری کنیم. برای این منظور، تابع break را با تعریف (x==15)break اعلان میکنیم، بنابراین به محض اینکه کد عدد 15 را فراخوانی کند، برنامه خاتمه مییابد. خط 10 متغیر x را بین محدوده 10 و 20 اعلان میکند range(10,20).
- خط 11 شرط برای breakpoint را اعلان میکند x==15
- خط 12 مراحل را تکرار کرده تا به عدد 15 برسد.
- خط 13 نتیجه را در خروجی چاپ میکند.
نحوه استفاده از دستور continue در حلقه For
تابع Continue، همانطور که از نامش پیداست، به شمارش فعلی از حلقه For خاتمه داده اما اجرای مابقی شمارش ها را متوقف نخواهد کرد.
مثال
#use a for loop over a collection #Months = ["Jan","Feb","Mar","April","May","June"] #for m in Months: #print m # use the break and continue statements for x in range (10,20): #if (x == 15): break if (x % 5 == 0) : continue print(x)
خروجی
11 12 13 14 16 17 18 19
از دستور continue میتوان در زمانهایی استفاده کرد که قصد گرفتن یک مقدار مشخص از یک لیست را داریم.
در مثال ما، مقدار را بین 10 تا 20 اعلان کردهایم، اما بین این اعداد ما تنها به اعدادی نیاز داریم که بر 5 بخش پذیر نیستند، به عبارت دیگر، در صورت تقسیم آنها بر 5 جواب صفر نخواهد بود.
بنابراین، در رنج (19,20,…10,11,12) تنها 3 عدد (10,15,20) هستند که بر 5 بخش پذیرند.
بنابراین انتظار داریم برای اعداد 10، 15 و 20 ، حلقه For ادامه نداده و بقیه را در خروجی چاپ کند.
- خط 10 متغیر x را در محدوده 10 و 20 اعلان میکند range(10,20).
- خط 12 شرط بخش پذیری بر 5 را برای continue اعلان میکند.
- خط 13 نتیجه را چاپ میکند.
نحوه استفاده از تابع enumerate برای حلقه For
تابع enumerate در حلقه For دو کار را انجام میدهد:
- عدد ایندکس را برای عضو برمیگرداند.
- عضوی از مجموعهای که در حال جستجو در آن هستیم را نیز برمیگرداند.
مثال
تابع enumeration برای عددگذاری یا ایندکس گذاری اعضای یک لیست به کار میرود.
فرض کنید، میخواهیم ماهها (Jan, Feb, Marc, ….June) را عددگذاری کنیم، بنابراین متغیر i را اعلان میکنیم تا حین عمل enumerate اعداد را ذخیره کرده و m عدد ماه درون لیست را چاپ میکند.
#use a for loop over a collection Months = ["Jan","Feb","Mar","April","May","June"] for i, m in enumerate (Months): print(i,m) # use the break and continue statements #for x in range (10,20): #if (x == 15): break #if (x % 5 == 0) : continue #print x
خروجی
0 Jan 1 Feb 2 Mar 3 April 4 May 5 June
وقتی که کد اجرا میشود، خروجی تابع enumerate نام ماه را به همراه عدد ایندکس برمیگرداند مانند (Jan-0), (Feb-1), (March-2), …
- خط 3 لیست ماهها را اعلان میکند ( Jan, Feb,…Jun)
- خط 4 متغیر i و m را برای حلقه For اعلان میکند.
- خط 5 نتیجه را چاپ کرده و برای شمارش بقیه ماهها به کرات وارد حلقه For میشود.
مثال های عملی
اجازه دهید مثال دیگری از حلقه For ببنینم که در آن یک دستور بارها و بارها تکرار میشود.
حلقه پایتون |
کد همه تمرین ها |
کد مربوط به حلقه while |
x=0 while (x<4): print (x) x= x+1 |
مثال ساده حلقه For |
x=0 for x in range (2,7): print (x) |
استفاده از حلقه For برای رشته ها |
Months = ["Jan","Feb","Mar","April","May","June"] for m in (Months): print (m) |
استفاده از دستور break در حلقه For |
for x in range (10,20): if (x == 15): break print (x) |
استفاده از دستور continue برای حلقه For |
for x in range (10,20): if (x % 5 == 0): continue print (x) |
کد مربوط به تابع enumerate همراه با حلقه For |
Months = ["Jan","Feb","Mar","April","May","June"] for i, m in enumerate (Months): print (i,m) |
چگونه از حلقه for برای تکرار زیاد یک دستور استفاده کنیم؟
میتوان از حلقه for برای تکرار یک دستور به صورت مکرر استفاده کرد. در این مثال میخواهیم کلمه guru99 را سه مرتبه چاپ کنیم.
مثال: برای تکرار یک دستور برای چندین مرتبه، متغیر i را در دستور (i in 123) اعلان میکنیم. بنابراین وقتی که کد زیر را اجرا کنید، به تعداد بارهایی که متغیر در (i in 123) اعلان شده، عبارت (guru99) چاپ میگردد.
for i in '123': print ("guru99",i,)
خروجی
guru99 1 guru99 2 guru99 3
همانند دیگر زبان های برنامهنویسی، زبان پایتون نیز از حلقهها بهره میگیرد اما به جای استفاده از رنج متنوعی از حلقهها، تنها به حلقههای While و For اکتفا کرده است.
- حلقههای while بر اساس درست یا نادرست بودن عبارت شرطی اجرا میشوند.
- حلقه های For شمارنده نامیده میشوند، این حلقه ها عناصر یک دنباله را مبتنی بر یک مجموعه شرط میشمارند.
- در پایتون میتوان از حلقه های For برای چیزهای دیگری به غیر از اعداد نیز استفاده کرد (باید مجموعه ای که قرار است روی آن حلقه انجام شود مشخص گردد).
- Breakpoint در حلقه For برای شکستن و خاتمه دادن برنامه در هر نقطهای به کار میرود.
- دستور Continue به چاپ کردن عبارت ادامه میدهد، و نتیجه را برطبق مجموعه شرطی چاپ میکند.
- تابع enumeration در حلقه For عضو مجموعه ای که در حال جستجو در آن هستیم را به همراه عدد ایندکس برمیگرداند.
مثال پایتون 2
کدهای بالا برای پایتون 3 نوشته شده اند، اگر میخواهید از پایتون 2 استفاده کنید، از کد زیر استفاده کنید.
# How to use "While Loop" #Example file for working with loops # x=0 #define a while loop while(x <4): print x x = x+1 #How to use "For Loop" #Example file for working with loops # x=0 #define a while loop # while(x <4): # print x # x = x+1 #Define a for loop for x in range(2,7): print x #How to use For Loop for String #use a for loop over a collection Months = ["Jan","Feb","Mar","April","May","June"] for m in Months: print m #How to use break statements in For Loop #use a for loop over a collection #Months = ["Jan","Feb","Mar","April","May","June"] #for m in Months: #print m # use the break and continue statements for x in range (10,20): if (x == 15): break #if (x % 2 == 0) : continue print x #How to use "continue statement" in For Loop #use a for loop over a collection #Months = ["Jan","Feb","Mar","April","May","June"] #for m in Months: #print m # use the break and continue statements for x in range (10,20): #if (x == 15): break if (x % 5 == 0) : continue print x #How to use "enumerate" function for "For Loop" #use a for loop over a collection Months = ["Jan","Feb","Mar","April","May","June"] for i, m in enumerate (Months): print i,m # use the break and continue statements #for x in range (10,20): #if (x == 15): break #if (x % 5 == 0) : continue #print x
خروجی
0 1 2 3 2 3 4 5 6 Jan Feb Mar April May June 10 11 12 13 14 11 12 13 14 16 17 18 19 0 Jan 1 Feb 2 Mar 3 April 4 May 5 June
منبع: ترجمه از سایت guru99.com
امیدواریم آموزش حلقه ها در پایتون براتون مفید واقع شده باشه. در جلسه بعدی آموزش پایتون با ما همراه باشید. اگر سوالی داشتین در قسمت کامنتها ⇓ بنویسید. همچنین اگر به ساخت بردهای الکترونیکی و برنامه نویسی علاقمند هستید آموزشهای آردوینو را هم مطالعه کنید.
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.
واقعا دست مریزاد میگم به تهیه کننده این مطلب و سایت فوق العادتون.
سلام،ممنون. خیلی خوشحالیم که مطالب آموزشی براتون مفید واقع شده.