حلقه های تو در تو در پایتون و کاربردهای آن + مثال همراه با کد
زبان های برنامه نویسی
چهارشنبه 23 اسفند 1402
جهت مطالعه این مقاله به 7 دقیقه زمان نیاز دارید
حلقه های تو در تو در پایتون و کاربردهای آن + مثال همراه با کد
آنچه در این مقاله خواهیم خواند:

مقدمه

 
حلقه یا loop در برنامه‌نویسی، برای اجرای پشت سر هم یک بلوک کد با هدفی مشخص استفاده می‌شود. در زبان برنامه‌نویسی پایتون، به طور کلی، دو نوع حلقه وجود دارد که حلقه‌های for و حلقه‌های while می‌باشند (for loops and while loops). ما می‌توانیم با استفاده و ترکیب این دو نوع حلقه، حلقه‌های تو در تو بسازیم. به این نوع حلقه‌ها nested loops می‌گویند. حلقه‌های تو در تو در پایتون به معنای حلقه‌ای داخل حلقه دیگر می‌باشد مثلا، حلقهfor داخل حلقه while، حلقه for داخل حلقه for و…
 

سینتکس مربوط به حلقه‌های تو در تو در پایتون


سینتکس (syntax): علائم نشانه‌گذاری و قواعد نوشتن کد مربوط به یک زبان برنامه‌نویسی خاص را سینتکس می‌گویند.


Outer_loop_Expression:
   Inner_loop_Expression:
       Statement inside inner_loop
   Statement inside outer_loop

 

مثال‌های حلقه‌های تو در تو در پایتون


با یک مثال پایه‌ای از حلقه‌های تو در تو در پایتون شروع می‌کنیم:

x = [1, 2]
y = [4, 5]
for i in x:
   for j in y:
       print(i, j)


کد بالا با استفاده از حلقه لوپ، عنصر اول  لیست (x) را در کنار عنصر اول لیست (y) قرار می‌دهد و آن را پرینت می‌کند. سپس عنصر اول لیست (x) را کنار عنصر دوم لیست (y) قرار می‌دهد و پرینت می‌کند. این کار را برای تمام عناصر لیست (x)، انجام می‌دهد و خروجی به صورت زیر به ما نمایش داده می‌شود. 



Output: 
1 4
1 5
2 4
2 5

 

مثال دیگری از حلقه‌های تو در تو در پایتون را بررسی می‌کنیم:

 

for i in range(2, 4):
   for j in range(1, 5):
       print(i, 'x', j, "=", i*j)
print()

 

کد بالا با استفاده از حلقه‌های تو در تو در پایتون، در حلقه بیرونی، به ازای اعداد در بازه 2 تا 3، برای هر عدد آن را یک بار ضرب در بازه  اعداد حلقه داخلی 1 تا 4 می‌کند. سپس خروجی را همان‌طور که در کد نوشتیم برایمان پرینت می‌کند. خروجی کد بالا به این صورت خواهد بود.

 

Output:
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
 

پرینت کردن با استفاده از حلقه خارجی و داخلی در حلقه‌های تو در تو در پایتون

 

list1 = ['I am ', 'You are ']
list2 = ['healthy', 'fine', 'great']
for item in list1:
   print('start')
   i = 0
   while i < len(list2):
       print(item,list2[i] )
       i += 1
   print('end')
 

در کد بالا، به ازای هر عنصر از list1، لوپ while اجرا می‌شود. در این مثال از حلقه for به عنوان حلقه خارجی و از حلقه while به عنوان حلقه داخلی استفاده شده است. در حلقه داخلی while، با استفاده از متغیر شمارش‌گر i ، عنصر اول list1 را در کنار عنصر اول list2 قرار می‌دهد و آن را پرینت می‌کند و به متغیر شمارش‌گر i، یک واحد اضافه می‌کند. سپس عنصر اول list1 را کنار عنصر دوم list2 قرار می‌دهد و به متغیر شمارش‌گر i، یک واحد اضافه می‌کند. این کار را تا زمانی تکرار می‌کند که تمام عناصر list2 یک بار کنار عنصر اول list1 قرار بگیرند. سپس دوباره حلقه داخلی اجرا می‌شود و این بار برای عنصر دوم list1، پروسه مربوط به حلقه داخلی while را اجرا می‌کند، و در نهایت خروجی به این صورت خواهد بود.


Output:
start 
i am healthy
i am fine 
i am great 
end 
start 
you are healthy
you are fine
you are great 
end

 

استفاده از دستور break داخل حلقه‌های تو در تو در پایتون


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

مثال استفاده از دستور break داخل حلقه‌های تو در تو:

 

for i in range(2, 4):
   for j in range(1,11):
       if i == j:
           break
       print(i, "x", j, "=", i*j)
print()

 

ما در کد بالا از دستور break در حلقه داخلی استفاده می‌کنیم. هر وقت متغیر i با متغیر j یکسان شود، حلقه داخلی پایان می‌یابد.
خروجی کد بالا به این صورت خواهد بود:

 

Output : 
2 x 1 = 2
3 x 1 = 3
3 x 2 = 6

 

سخن آخر


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

 

منابع


https://www.geeksforgeeks.org/python-nested-loops/
https://pynative.com/python-nested-loops/