حلقه for و دیگر ساختارهای تکرار در پایتون
در بسیاری از مواقع نیاز داریم یک عملیات را برای هر عضو یک لیست یا دنباله تکرار کنیم. در چنین شرایطی از حلقههای تکرار استفاده میشود. یکی از روشهای ابتدایی، استفاده از حلقه while به همراه یک شمارنده است:
words = ["hello", "world", "spam", "eggs"]
cnt = 0
while cnt < len(words):
word = words[cnt]
print(word + "!")
cnt += 1
خروجی:
hello!
world!
spam!
eggs!
نکته: در مثال بالا، با استفاده از اندیسها به اعضای لیست دسترسی پیدا کردیم. این روش هرچند رایج است، اما نیاز به کد بیشتر و دقت بالاتری دارد. پایتون یک روش سادهتر و خواناتر ارائه میدهد: استفاده از حلقه for روی خود لیست.
words = ["hello", "world", "spam", "eggs"]
for word in words:
print(word + "!")
خروجی:
hello!
world!
spam!
eggs!
ترکیب for با range برای تکرارهای مشخص
اگر بخواهید عملیاتی را تعداد مشخصی تکرار کنید، میتوانید از ترکیب for و range() استفاده کنید:
for i in range(5):
print("hello!")
خروجی:
hello!
hello!
hello!
hello!
hello!
مثالهای بیشتر برای درک بهتر
چاپ اندیسها و عناصر لیست با range و len:
words = ["python", "rocks", "so", "much"]
for i in range(len(words)):
print(f"{i}: {words[i]}")
خروجی:
0: python
1: rocks
2: so
3: much
استفاده از enumerate برای سادهتر کردن کد بالا:
for index, word in enumerate(words):
print(f"{index}: {word}")
خروجی:
0: python
1: rocks
2: so
3: much
استفاده از else همراه با حلقهها
در پایتون میتوانید همراه با for یا while از بخش else استفاده کنید. این بخش زمانی اجرا میشود که حلقه بهصورت طبیعی (بدون break) تمام شود.
for num in range(5):
print(num)
else:
print("تمام اعداد چاپ شدند.")
خروجی:
0
1
2
3
4
تمام اعداد چاپ شدند.
اما اگر در طول حلقه از break استفاده شود، else اجرا نخواهد شد:
for num in range(5):
if num == 3:
break
print(num)
else:
print("تمام شد.")
خروجی:
0
1
2