
روز ۶: حلقهها در پایتون
تا اینجای مسیر، ما یاد گرفتیم چگونه دادهها را ذخیره کنیم، تصمیم بگیریم و با کاربر تعامل داشته باشیم. اما تصور کنید بخواهیم عملی را چندین بار بدون نوشتن دوبارهی کد انجام دهیم؛ اینجاست که حلقهها وارد میدان میشوند. حلقهها به برنامه اجازه میدهند کارها را تکرار کنند بدون آنکه مجبور باشیم هر بار یک دستور را دوباره بنویسیم. این قابلیت نه تنها کد را کوتاه و خوانا میکند، بلکه منطق برنامه را نیز بهینه میکند. بدون حلقهها، حتی سادهترین برنامهها به شدت طولانی و پرخطا خواهند شد. حلقهها در پایتون به دو شکل اصلی وجود دارند: for و while، که هر کدام برای سناریوهای خاص مناسب هستند و در پروژههای واقعی کاربرد فراوان دارند.
حلقه for؛ تکرار مشخص و قابل پیشبینی
حلقه for یکی از سادهترین و در عین حال قدرتمندترین ابزارهای تکرار در پایتون است. این حلقه زمانی استفاده میشود که بدانیم چند بار باید یک کار را انجام دهیم یا میخواهیم روی مجموعهای از دادهها حرکت کنیم. for به شما اجازه میدهد هر عنصر یک لیست، رشته یا مجموعه را به ترتیب بررسی کرده و عملی روی آن انجام دهید. این نوع حلقه برای کار با دادههای مرتب و هنگام پردازش آرایهها و لیستها بسیار کاربردی است. یادگیری صحیح for در روز ششم پایهای برای کار با دادهها، فایلها و حتی وباسکرپینگ فراهم میکند.
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print("I like", fruit)در این مثال، حلقه for هر عنصر لیست fruits را جداگانه میگیرد و پیام مربوط به آن را چاپ میکند، بدون نیاز به نوشتن کد تکراری برای هر میوه.
حلقه while؛ تکرار مبتنی بر شرط
در مقابل حلقه for، حلقه while زمانی استفاده میشود که تعداد تکرار مشخص نباشد و اجرای کد به یک شرط منطقی وابسته باشد. این نوع حلقه بسیار منعطف است و در پروژههای واقعی مثل ساخت بازیها، انتظار ورودی کاربر یا پردازش دادهها تا زمانی که شرایط خاصی برقرار باشد، کاربرد دارد. while به شما امکان میدهد منطق برنامه را پویا طراحی کنید و هر بار تصمیم بگیرید که آیا باید ادامه دهد یا متوقف شود. نکته مهم در استفاده از while، جلوگیری از ایجاد حلقه بینهایت است که یکی از اشتباهات رایج مبتدیهاست. رعایت این نکته باعث میشود برنامه شما هم امن و هم بهینه عمل کند.
count = 0
while count < 5:
print("Count is", count)
count += 1در این مثال، حلقه while پنج بار اجرا میشود و سپس متوقف میشود، زیرا شرط count < 5 دیگر برقرار نیست.
ترکیب حلقهها با شرطها و منطق پیچیدهتر
قدرت واقعی حلقهها زمانی آشکار میشود که آنها را با شرطها و عملگرهای منطقی ترکیب کنیم. شما میتوانید در داخل حلقه if استفاده کنید و برنامه را به گونهای طراحی کنید که تنها در صورت برقراری یک شرط خاص، عملی انجام شود. این روش باعث میشود کد شما هم انعطافپذیر و هم قابل خواندن باشد و به راحتی بتوانید پروژههای پیچیدهتر بسازید. ترکیب حلقه و شرط، یکی از پایههای ساختار بسیاری از الگوریتمها و برنامههای کاربردی است.
numbers = [1, 2, 3, 4, 5]
for number in numbers:
if number % 2 == 0:
print(number, "is even")
else:
print(number, "is odd")در این مثال، حلقه for تمام عناصر لیست را بررسی میکند و شرط داخل حلقه تعیین میکند که عدد زوج است یا فرد.
استفاده از break و continue برای کنترل جریان حلقه
گاهی نیاز داریم جریان حلقه را پیش از پایان طبیعی تغییر دهیم یا برخی تکرارها را نادیده بگیریم. اینجاست که break و continue وارد عمل میشوند. break باعث توقف فوری حلقه میشود و continue باعث میشود تکرار فعلی نادیده گرفته شود و حلقه به مرحله بعد برود. این دو دستور در پروژههای واقعی برای مدیریت جریان برنامه و بهبود عملکرد بسیار مفید هستند. درک دقیق آنها از روز ششم یادگیری پایتون، به شما کمک میکند حلقههای کارآمدتر و منعطفتری بسازید.
for i in range(10):
if i == 5:
break
print(i)
for i in range(5):
if i == 2:
continue
print(i)حلقههای تو در تو و کاربردهای آنها
گاهی لازم است یک حلقه داخل حلقه دیگری اجرا شود، مثلاً برای پردازش ماتریسها، جدولها یا ساختارهای چندبعدی. حلقههای تو در تو در پایتون بسیار ساده هستند و با رعایت تورفتگیها، به راحتی قابل پیادهسازیاند. این تکنیک به شما کمک میکند برنامههایی بسازید که چندبعدی و پیچیده هستند و بدون آنها بسیاری از الگوریتمها قابل نوشتن نیستند. ترکیب حلقههای تو در تو با شرطها و عملگرهای منطقی، پایه طراحی بسیاری از برنامههای حرفهای است.
for i in range(3):
for j in range(2):
print("i =", i, "j =", j)جمعبندی و اهمیت تمرین عملی
در روز ششم یادگیری پایتون، شما با حلقههای for و while آشنا شدید و یاد گرفتید چگونه با شرطها و ابزارهای کنترل جریان، تکرارهای هوشمند بسازید. حلقهها نه تنها کد شما را کوتاه و خوانا میکنند، بلکه امکان طراحی برنامههای پویا و واقعی را فراهم میآورند. تمرین عملی با انواع دادهها و سناریوهای مختلف باعث میشود این مفاهیم کاملاً در ذهنتان تثبیت شوند و آماده ساخت پروژههای بزرگتر و پیچیدهتر باشید. درک عمیق حلقهها، نقطه عطفی است که برنامه شما را از حالت خطی و ساده به سطحی انعطافپذیر و کاربردی میبرد.
