حلقه یا 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
مطالب مرتبط: حلقه for در پایتون
دستور 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/