حلقه تکرار در پایتون
یکی از متداولترین کارهایی که هنگام برنامهنویسی با آن روبرو میشویم تکرار یک قطعه کد است. این کار توسط حلقههای تکرار انجام میشود.
تکرار یک حلقه در زبان پایتون توسط دو دستور while و for انجام میشود.
حلقه while
ساختار کلی این حلقه به صورت زیر است.
while condition:
statementsتا زمانی که عبارت condition برابر با True باشد دستور یا دستورات درون آن (statement) اجرا خواهد شد.
مثال:
برنامه زیر حاصلجمع اعداد 1 تا 10 را چاپ میکند.
a = 1
result = 0
while a < 11:
result += a
a += 1
print(result)خروجی:
55حلقه for
معمولا از حلقه for برای پیمایش یک دنباله از دادهها استفاده میشود. مثلا یک لیست، چندتایی، رشته و ... چیزی شبیه به دستور foreach در زبانهای دیگر.
دستور کلی حلقه for به صورت زیر است:
for iterator in sequence:
statements(s)مثال:
برنامه چاپ مجموع اعداد 1 تا 10 را با حلقه for میتوان به صورت زیر نوشت:
result = 0
for a in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
result += a
print(result)در این حالت نیازی به مقداردهی اولیه شمارنده a نیست. همچنین نیازی نیست برای هر بار پیمایش حلقه مقدار آن افزایش پیدا کند. البته همین برنامه را میتوان آسانتر نوشت.
مثال:
result = 0
for a in range(1, 11):
result += a
print(result)range(1, 11) شامل اعداد 1 تا 10 است و خود عدد 11 را شامل نمیشود. در صورتی که ابتدای بازه پیمایش را مشخص نکنیم، پایتون آن را 0 در نظر میگیرد. بنابراین برای برنامه بالا میتوان از range(11) نیز استفاده کرد که اعداد 0 تا 10 را با هم جمع میکند.
دستورهای کنترلی حلقه continue و break
دو دستور مهم برای کنترل فرایند پیمایش حلقه وجود دارد.
دستور continue باعث بازگشت به ابتدای حلقه میشود. یعنی دستورات بعد از continue اجرا نمیشوند و حلقه از مرحله بعد دوباره اجرا میشود.
دستور break باعث خروج کامل از حلقه میشود.
مثال:
برنامه زیر اعداد زوج درون لیست را نمایش میدهد.
a = [1, 5, 8, 100, -6, 3]
for number in a:
if number % 2 != 0:
continue
print(number)خروجی:
8
100
-6در کد بالا در صورتی که عدد زوج نباشد به ابتدای حلقه بازمیگردد و دستور print اجرا نمیشود. در غیر این صورت عدد چاپ میشود.
البته همین کار را بدون continue نیز میتوان انجام داد.
for number in a:
if number % 2 == 0:
print(number)مثال:
برنامه زیر اولین عدد زوج از لیست را چاپ میکند.
x = [1, 5, 8, 100, -6, 3]
for number in x:
if number % 2 == 0:
print(number)
breakخروجی:
8