پایتونمقدماتی۶ دقیقه مطالعهPython 3.12+

حلقه‌ها

در این درس با for و while کارها را تکرار می‌کنید، بازه‌های عددی را با range می‌سازید و با break و continue جریان حلقه را کنترل می‌کنید.

آنچه در این درس می‌آموزید

  • با for و range روی بازه‌ای از اعداد پیمایش کنید
  • با while تکرار وابسته به شرط بسازید
  • جریان حلقه را با break و continue کنترل کنید
نویسنده: تیم داکنامه · بازبینی: ۲۰۲۶-۱۰-۳۰
فهرست مطالب
پیش‌نیاز: شرط‌ها

کامپیوتر در «تکرار بی‌خستگی» حرفه‌ای است. اگر بخواهید پنج بار سلام بگوید، می‌توانید پنج خط print بنویسید؛ اما هزار بار چه؟ حلقه (Loop) ابزار تکرار است: یک بلوک کد می‌نویسید و پایتون آن را هر بار که لازم است اجرا می‌کند. دو نوع حلقه اصلی پایتون را می‌شناسید.

for و range؛ تکرار معلوم‌التعداد

وقتی می‌دانید چند بار باید تکرار شود، حلقه for همراه تابع range ابزار شماست:

countdown.py
for i in range(5, 0, -1):
    print(i)
print("Liftoff!")
خروجی کد

5 4 3 2 1 Liftoff!

تابع range دنباله‌ای از اعداد می‌سازد و for روی آن پیمایش می‌کند؛ در هر دور، عدد جاری در متغیر i قرار می‌گیرد. range سه شکل دارد:

فراخوانی دنباله توضیح
range(5) ۰ تا ۴ از صفر شروع می‌شود
range(1, 5) ۱ تا ۴ ابتدا هست، انتها نیست
range(5, 0, -1) ۵ تا ۱ گام منفی، شمارش معکوس

قاعده کلیدی این است: انتها هرگز داخل دنباله نیست؛ range(1, 5) چهار عدد می‌دهد نه پنج تا. این قاعده اول کمی غیرمنتظره به نظر می‌رسد، ولی وقتی عادت کردید، حساب کردن طول بازه‌ها ساده می‌شود.

while؛ تکرار تا وقتی شرط برقرار است

حلقه while مثل if عمل می‌کند، ولی بعد از هر دور دوباره شرط را بررسی می‌کند و تا وقتی شرط درست است ادامه می‌دهد. برنامه‌ای که جمع اعداد ۱ تا ۱۰ را حساب می‌کند:

sum_while.py
total = 0
n = 1
while n <= 10:
    total += n
    n += 1
print(total)
خروجی کد

55

در هر دور، total به‌روز می‌شود و n یکی بالا می‌رود؛ وقتی n شد ۱۱، شرط نادرست است و حلقه تمام. چیزی که حلقه را تمام می‌کند همان تغییر n داخل بدنه است؛ اگر آن سطر را جا بیندازید، حلقه تا ابد می‌چرخد.

پیمایش رشته‌ها

for فقط برای اعداد نیست؛ روی هر چیز قابل‌پیمایشی کار می‌کند. یک رشته هم قابل‌پیمایش است: حرف به حرف:

find_yeh.py
for letter in "python":
    if letter == "h":
        break
    print(letter)
خروجی کد

p y t

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

break و continue

دو کلمه کلیدی، کنترل دقیق حلقه را می‌دهند:

  • break حلقه را همان‌جا تمام می‌کند و از آن بیرون می‌پرد؛ در مثال بالا با رسیدن به «ی» حلقه بسته شد و دو حرف آخر هرگز چاپ نشدند.
  • continue فقط دور جاری را رد می‌کند و سراغ دور بعد می‌رود:
odds.py
for i in range(1, 8):
    if i % 2 == 0:
        continue
    print(i)
خروجی کد

1 3 5 7

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

تمرین‌ها

تمرین

تمرین ۱ — جمع زوج‌ها

جمع همه عددهای زوج از ۱ تا ۱۰۰ را با یک حلقه for و یک متغیر انباره حساب کنید. جواب باید ۲۵۵۰ شود.

python
# Write your code here
نمایش راه‌حل
python
total = 0
for i in range(2, 101, 2):
    total += i
print(total)
خروجی کد

2550

::: :::

خلاصه

  • for روی دنباله پیمایش می‌کند؛ range دنباله اعداد می‌سازد و انتها هیچ‌وقت داخل دنباله نیست.
  • while تا وقتی شرطش درست است می‌چرخد؛ چیزی در بدنه باید شرط را به سمت نادرستی ببرد.
  • رشته‌ها قابل‌پیمایش‌اند؛ در هر دور for یک حرف در متغیر پیمایش است.
  • break کل حلقه را تمام و continue فقط دور جاری را رد می‌کند.
  • تعداد معلوم؟ for. تکرار تا وضعیت مشخص؟ while.

حلقه به دست آوردید؛ اما الگوهای کاربردی‌ای مثل پیدا کردن بیشینه یا جست‌وجو در دل همین حلقه‌ها هستند. در درس بعدی این الگوها را منظم و حرفه‌ای تمرین می‌کنیم.

منابع و ارجاع‌ها

درس‌های مرتبط