حلقهها در پایتون
حلقه for، while، range، break، continue و else در حلقههای پایتون
حلقه چیست؟
حلقه (Loop) برای تکرار یک بلوک کد استفاده میشود. پایتون دو نوع حلقه اصلی دارد: for و while.
حلقه for
برای پیمایش روی یک دنباله (لیست، رشته، range و...):
# پیمایش لیست
fruits = ["سیب", "موز", "پرتقال"]
for fruit in fruits:
print(fruit)
# پیمایش رشته
for char in "Python":
print(char)
تابع range()
برای تولید دنباله اعداد:
# range(stop) — 0 تا stop-1
for i in range(5):
print(i) # 0, 1, 2, 3, 4
# range(start, stop)
for i in range(2, 6):
print(i) # 2, 3, 4, 5
# range(start, stop, step)
for i in range(0, 10, 2):
print(i) # 0, 2, 4, 6, 8
# شمارش معکوس
for i in range(5, 0, -1):
print(i) # 5, 4, 3, 2, 1
حلقه while
تا وقتی شرط درست باشد، تکرار میکند:
count = 0
while count < 5:
print(f"شمارش: {count}")
count += 1
مراقب حلقه بینهایت باشید! اگر شرط همیشه درست بماند، حلقه تمام نمیشود:
# ❌ حلقه بینهایت!
# while True:
# print("بینهایت!")
# ✅ درست
count = 0
while count < 5:
print(count)
count += 1 # مهم!
break — خروج از حلقه
با break میتوانید حلقه را زودتر تمام کنید:
for i in range(10):
if i == 5:
break # وقتی i برابر ۵ شد، حلقه تمام میشود
print(i)
# خروجی: 0, 1, 2, 3, 4
continue — پرش از این دور
با continue میتوانید بقیه کد این دور را رد کنید و به دور بعد بروید:
for i in range(10):
if i % 2 == 0:
continue # اعداد زوج را رد کن
print(i)
# خروجی: 1, 3, 5, 7, 9
else در حلقه
بلوک else در حلقه وقتی اجرا میشود که حلقه طبیعی تمام شده باشد (نه با break):
for i in range(5):
print(i)
else:
print("حلقه تمام شد")
# با break اجرا نمیشود
for i in range(5):
if i == 3:
break
print(i)
else:
print("این چاپ نمیشود!")
حلقه تو در تو
# جدول ضرب
for i in range(1, 4):
for j in range(1, 4):
print(f"{i} × {j} = {i * j}")
print("---")
enumerate — ایندکس و مقدار
fruits = ["سیب", "موز", "پرتقال"]
for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")
# با شروع از ۱
for index, fruit in enumerate(fruits, 1):
print(f"{index}. {fruit}")
zip — پیمایش موازی
names = ["علی", "مریم", "حسن"]
ages = [25, 30, 22]
for name, age in zip(names, ages):
print(f"{name}: {age} سال")
حلقه روی دیکشنری
person = {"name": "علی", "age": 25, "city": "تهران"}
for key, value in person.items():
print(f"{key}: {value}")
while با else
count = 0
while count < 3:
print(count)
count += 1
else:
print("تمام شد")
مثال: حدس عدد
import random
secret = random.randint(1, 100)
attempts = 0
while True:
guess = 50 # در واقع از کاربر گرفته میشود
attempts += 1
if guess == secret:
print(f"آفرین! در {attempts} تلاش")
break
elif guess < secret:
print("بزرگتر")
else:
print("کوچکتر")
خلاصه
| ساختار | توضیح |
|---|---|
for x in seq | پیمایش دنباله |
while cond | تکرار تا وقتی شرط درست است |
range(n) | دنباله اعداد |
break | خروج از حلقه |
continue | پرش از این دور |
enumerate() | ایندکس + مقدار |
zip() | پیمایش موازی |
این مبحث بخشی از دوره آموزش کامل پایتون است.