آموزش جامع حلقههای for و while در پایتون
یکی از مهمترین اصول در برنامهنویسی، پرهیز از تکرار کدهای مشابه (اصل DRY) است. تصور کنید میخواهید نام ۱۰۰ کاربر را در خروجی چاپ کنید؛ قطعاً نوشتن ۱۰۰ خط دستور print منطقی نیست! اینجاست که حلقهها (Loops) به کمک ما میآیند. حلقهها به ما اجازه میدهند یک بلوک از کد را تا زمانی که نیاز داریم، به صورت خودکار تکرار کنیم.
در این مقاله از بخش «مفاهیم پایه و سینتکس» پای شو، به صورت جامع و با مثالهای کاربردی، دو حلقه اصلی در زبان پایتون یعنی حلقه while و حلقه for را بررسی میکنیم.
حلقه While در پایتون
حلقه while در پایتون، یک بلوک کد را تا زمانی که یک شرط خاص برقرار (True) باشد، تکرار میکند. پیش از هر بار اجرای کد، پایتون ابتدا شرط را بررسی میکند؛ اگر شرط درست بود، کد اجرا میشود و این روند ادامه مییابد. به محض اینکه شرط غلط (False) شود، اجرای حلقه متوقف شده و برنامه به خطوط بعدی میرود.
این حلقه برای مواقعی کاربرد دارد که از پیش نمیدانید کد قرار است دقیقاً چند بار تکرار شود و پایان حلقه به یک وضعیت یا اتفاق خاص بستگی دارد.
ساختار و مثال حلقه While
count = 1
while count <= 5:
print("تکرار شماره:", count)
count += 1 # count = count + 1
print("حلقه به پایان رسید.")
تحلیل کد: در این مثال، متغیر count مقدار اولیه ۱ را دارد. شرط حلقه این است که تا وقتی count کوچکتر یا مساوی ۵ است، دستورات داخل حلقه اجرا شوند. نکته بسیار مهم، دستور count += 1 است. این دستور در هر بار اجرای حلقه، یک واحد به مقدار متغیر اضافه میکند تا در نهایت شرط حلقه نقض شده و برنامه از حلقه خارج شود.
هشدار (حلقه بینهایت): اگر نوشتن دستوری که شرط حلقه را تغییر میدهد (مانند count += 1) فراموش کنید، شرط همیشه True باقی میماند و یک «حلقه بینهایت» ساخته میشود که تا زمان کرش کردن سیستم یا توقف دستی، اجرا خواهد شد!
حلقه For در پایتون
حلقه for در پایتون رفتار متفاوتی نسبت به بسیاری از زبانهای دیگر دارد. این حلقه بیشتر شبیه به یک «تکرارکننده» (Iterator) است که روی آیتمهای یک مجموعه یا دنباله (Sequence) حرکت میکند. این دنباله میتواند یک لیست (List)، تاپل (Tuple)، رشته متنی (String) یا دیکشنری (Dictionary) باشد.
حلقه for برای مواقعی عالی است که میدانید دقیقاً روی چه تعداد آیتم یا چه مجموعهای میخواهید عملیاتی را انجام دهید.
ساختار و مثال حلقه For
# پیمایش در یک لیست
fruits = ["سیب", "موز", "گیلاس"]
for fruit in fruits:
print(fruit)
تحلیل کد: در این مثال، پایتون به صورت خودکار متغیر fruit را ایجاد کرده و در هر بار اجرای حلقه، یکی از مقادیر داخل لیست fruits را درون آن قرار میدهد. نیازی به تعریف شمارنده یا شرط پایان نیست؛ حلقه به محض تمام شدن آیتمهای لیست، متوقف میشود.
استفاده از تابع range در حلقه For
بسیار پیش میآید که مجموعهای از پیش تعریف شده نداریم و فقط میخواهیم یک کار را تعداد مشخصی (مثلاً ۱۰ بار) تکرار کنیم. در این حالت از تابع قدرتمند range() استفاده میکنیم. تابع range دنبالهای از اعداد را تولید میکند.
# چاپ اعداد از 0 تا 4
for i in range(5):
print("مقدار i برابر است با:", i)
# استفاده از range با نقطه شروع و پایان
# چاپ اعداد از 2 تا 5 (عدد پایان شامل نمیشود)
for number in range(2, 6):
print(number)
# استفاده از range با گام حرکت (Step)
# چاپ اعداد زوج بین 0 تا 10
for even in range(0, 11, 2):
print(even)
کنترل جریان حلقهها: دستورات break و continue
گاهی اوقات نیاز داریم که رفتار طبیعی یک حلقه را دستخوش تغییر کنیم؛ مثلاً در صورت رخ دادن یک اتفاق خاص، بلافاصله حلقه را متوقف کنیم یا از یک تکرار خاص چشمپوشی کنیم. برای این کار از دستورات کنترلی استفاده میکنیم.
۱. دستور break (شکستن حلقه)
دستور break به محض اجرا شدن، حلقه را به طور کامل متوقف کرده و برنامه را از بلوک حلقه خارج میکند (حتی اگر شرط حلقه هنوز True باشد یا آیتمهای لیست تمام نشده باشند).
for num in range(1, 10):
if num == 5:
print("رسیدیم به عدد ۵! خروج از حلقه.")
break
print(num)
خروجی این کد اعداد ۱ تا ۴ خواهد بود و پس از رسیدن به ۵، حلقه کاملاً متوقف میشود.
۲. دستور continue (پرش به دور بعدی)
دستور continue به پایتون میگوید: «دستورات باقیمانده در این دور از حلقه را نادیده بگیر و مستقیماً به دور بعدی (تکرار بعدی) برو.»
for num in range(1, 6):
if num == 3:
continue # رد شدن از عدد ۳
print(num)
خروجی این کد اعداد ۱، ۲، ۴ و ۵ خواهد بود و عدد ۳ به دلیل اجرای دستور continue چاپ نمیشود.
جمعبندی
درک صحیح حلقهها، پایه و اساس ساخت برنامههای منطقی و قدرتمند در پایتون است. به طور خلاصه:
-
هرگاه نیاز داشتید بر اساس یک شرط، کدی تکرار شود، به سراغ حلقه
whileبروید. -
هرگاه نیاز داشتید روی آیتمهای یک مجموعه یا به تعداد دفعات مشخص کدی تکرار شود، از حلقه
forو تابعrangeاستفاده کنید.
با تمرین مداوم و نوشتن قطعهکدهای کوچک، منطق این دو حلقه در ذهن شما نهادینه خواهد شد و میتوانید الگوریتمهای پیچیدهتری را در پروژههای پایتونی خود پیادهسازی کنید.

بدون دیدگاه