مهندس موفق الکترونیک

آموزش حلقه ها در پایتون – حلقه‌های‌ for و While

حلقه چیست؟

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

حلقه For چیست؟

حلقه For برای شمارش عناصر یک دنباله به‌ کار می‌رود. این حلقه بیشتر در شرایطی به کار می‌رود که بخواهید یک تکه کد را به تعداد مشخص n بار تکرار کنید.

حلقه While چیست؟

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

حلقه For و 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 عضو مجموعه ای که در حال جستجو در آن هستیم را به همراه عدد ایندکس برمی‌گرداند.
مطلب پیشنهادی:  دستورات IF، ELSE، ELIF، If تودرتو و Switch Case در پایتون

مثال پایتون 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

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

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    جلسه بعدی >>

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

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

2 دیدگاه

  1. منصور نادری نیا

    واقعا دست مریزاد میگم به تهیه کننده این مطلب و سایت فوق العادتون.