حلقه For در پایتون


حلقه for در پایتون یکی از مهم‌ترین ابزارهای کنترل جریان برنامه است که به شما اجازه می‌دهد یک سری عملیات را به تعداد مشخصی تکرار کنید. در ادامه، به توضیح دقیق و مرحله به مرحله این مفهوم می‌پردازیم و برای هر بخش مثال‌هایی ارائه می‌کنیم.

 

1. تعریف ساده حلقه for در پایتون

حلقه for به شما این امکان را می‌دهد که بر روی یک دنباله (مثل لیست، رشته، یا هر نوع قابل تکرار دیگر) پیمایش کنید و به ازای هر عضو از دنباله، کدی را اجرا کنید.

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

در این مثال، یک لیست از میوه‌ها داریم و با استفاده از حلقه for، هر میوه را به ترتیب چاپ می‌کنیم. خروجی این کد به صورت زیر خواهد بود:

apple
banana
cherry

2. ساختار کلی حلقه for

ساختار حلقه for در پایتون به این صورت است:

for item in iterable:
    # code to execute

- item: متغیری است که در هر دور از حلقه، یک عضو از دنباله (مثل لیست یا رشته) را دریافت می‌کند.

- iterable: دنباله‌ای است که می‌خواهید روی آن پیمایش کنید، مثل لیست، رشته، دیکشنری، یا حتی یک تابع تولید‌کننده (generator).

 

3. پیمایش روی رشته‌ها

رشته‌ها در پایتون هم قابل پیمایش هستند. هر حرف از یک رشته، به عنوان یک آیتم در حلقه for استفاده می‌شود.

for letter in "Python":
    print(letter)

خروجی:

P
y
t
h
o
n

 

4. استفاده از تابع range()

اگر می‌خواهید حلقه را با استفاده از یک عدد خاص یا محدوده‌ای از اعداد اجرا کنید، می‌توانید از تابع range() استفاده کنید. تابع range() یک دنباله از اعداد تولید می‌کند.

for i in range(5):
    print(i)

خروجی:

0
1
2
3
4

در این مثال، range(5) دنباله‌ای از اعداد 0 تا 4 تولید می‌کند (توجه داشته باشید که 5 شامل نمی‌شود).

 

پارامترهای دیگر range()

تابع range() سه پارامتر می‌پذیرد:

- start: شروع محدوده (به طور پیش‌فرض 0 است).

- stop: پایان محدوده (شامل نمی‌شود).

- step: میزان افزایشی که در هر مرحله به اعداد اضافه می‌شود (به طور پیش‌فرض 1 است).

مثال:

for i in range(2, 10, 2):
    print(i)

خروجی:

2
4
6
8

در اینجا، حلقه از 2 شروع شده، تا 10 ادامه می‌دهد (بدون شامل کردن 10)، و هر بار به اندازه 2 افزایش می‌یابد.

 

5. استفاده از حلقه for در پایتون با لیست‌های تو در تو

می‌توانید از حلقه‌های for برای پیمایش در لیست‌های تو در تو (لیست‌هایی که شامل لیست‌های دیگر هستند) استفاده کنید.

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for row in matrix:
    for item in row:
        print(item, end=' ')

خروجی:

1 2 3 4 5 6 7 8 9

6. پیمایش دیکشنری‌ها

برای پیمایش در یک دیکشنری (که شامل کلید و مقدار است) از حلقه `for` استفاده می‌شود. می‌توانید هم کلید و هم مقدار را در هر تکرار حلقه دریافت کنید.

student = {'name': 'John', 'age': 22, 'major': 'Computer Science'}
for key, value in student.items():
    print(f"{key}: {value}")

خروجی:

name: John
age: 22
major: Computer Science

 

7. استفاده از else در حلقه for

شما می‌توانید از یک عبارت else بعد از حلقه for استفاده کنید. این عبارت تنها در صورتی اجرا می‌شود که حلقه بدون هیچ وقفه‌ای (مثل break) به پایان برسد.

for i in range(3):
    print(i)
else:
    print("Loop finished without break")

خروجی:

0
1
2
Loop finished without break

 

8. قطع کردن حلقه For در پایتون با break

گاهی اوقات ممکن است بخواهید حلقه را در میانه‌ی کار قطع کنید. این کار با استفاده از دستور `break` انجام می‌شود.

for i in range(5):
    if i == 3:
        break
    print(i)

خروجی:

0
1
2

در این مثال، وقتی مقدار i برابر با 3 شد، حلقه با دستور break قطع می‌شود.

 

9. استفاده از continue برای رد شدن از یک تکرار

اگر بخواهید فقط یک دور از حلقه را رد کنید و به تکرار بعدی بروید، از دستور continue استفاده می‌کنید.

for i in range(5):
    if i == 2:
        continue
    print(i)

خروجی:

0
1
3
4

وقتی i برابر با 2 می‌شود، حلقه آن تکرار را نادیده می‌گیرد و به تکرار بعدی می‌رود.

 

10. حلقه‌های تو در تو (Nested Loops)

گاهی نیاز است که حلقه‌ها درون یکدیگر قرار بگیرند. برای مثال، در کار با ماتریس‌ها یا لیست‌های تو در تو از حلقه‌های تو در تو استفاده می‌شود.

for i in range(3):
    for j in range(2):
        print(f"i: {i}, j: {j}")

خروجی:

i: 0, j: 0
i: 0, j: 1
i: 1, j: 0
i: 1, j: 1
i: 2, j: 0
i: 2, j: 1

در اینجا، به ازای هر مقدار از i، حلقه داخلی j نیز دو بار اجرا می‌شود.

 

حلقه‌ For در پایتون یکی از ابزارهای بسیار کاربردی در پایتون است که برای پیمایش و کار با دنباله‌ها (لیست‌ها، رشته‌ها، دیکشنری‌ها و...) مورد استفاده قرار می‌گیرد. با استفاده از مفاهیمی مثل range(), break, continue, و حلقه‌های تو در تو، می‌توانید بسیاری از وظایف تکراری را به سادگی انجام دهید.

 

تمرین

اینجا 20 تمرین خلاقانه و ساده برای یادگیری و تمرین حلقه for در پایتون آماده کرده‌ایم. این تمرین‌ها از سطح مبتدی شروع می‌شوند و به تدریج کمی چالش‌برانگیزتر می‌شوند تا مهارت شما در کار با حلقه‌ها بیشتر شود.

 

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

2. چاپ اعداد زوج: برنامه‌ای بنویسید که تمام اعداد زوج بین 1 تا 20 را با استفاده از حلقه `for` چاپ کند.

3. جمع اعداد در یک لیست: برنامه‌ای بنویسید که جمع تمام اعداد موجود در یک لیست را با استفاده از حلقه `for` محاسبه کند. برای مثال، اگر لیست `[1, 2, 3, 4, 5]` باشد، خروجی باید `15` باشد.

4. چاپ کاراکترهای یک رشته: برنامه‌ای بنویسید که هر کاراکتر یک رشته (مانند "Python") را به صورت جداگانه چاپ کند.

5. محاسبه توان‌های عدد 2: برنامه‌ای بنویسید که توان‌های عدد 2 را از `2^0` تا `2^10` با استفاده از حلقه `for` چاپ کند.

6. ایجاد لیست مربعات اعداد: لیستی از اعداد 1 تا 10 بسازید و با استفاده از حلقه `for`، مربعات این اعداد را در یک لیست جدید ذخیره کنید.

7. پیدا کردن تعداد حروف خاص در رشته: برنامه‌ای بنویسید که تعداد حروف `a` را در یک رشته شمارش کند. به عنوان مثال، برای رشته "banana"، خروجی باید 3 باشد.

8. جمع اعداد فرد در محدوده‌ای خاص: برنامه‌ای بنویسید که جمع تمام اعداد فرد از 1 تا 50 را محاسبه و چاپ کند.

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

10. پیدا کردن بزرگ‌ترین عدد در لیست: برنامه‌ای بنویسید که با استفاده از حلقه `for` بزرگ‌ترین عدد را در یک لیست از اعداد پیدا کند.

11. ایجاد الگوی ستاره‌ای: برنامه‌ای بنویسید که با استفاده از حلقه `for`، یک الگوی ستاره‌ای مانند زیر را چاپ کند:

    *

    **

    ***

    ****

    *****

 

12. محاسبه فاکتوریل یک عدد: برنامه‌ای بنویسید که فاکتوریل یک عدد را با استفاده از حلقه `for` محاسبه کند. به عنوان مثال، فاکتوریل 5 برابر با `120` است.

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

14. مقایسه عناصر دو لیست: دو لیست از اعداد تعریف کنید و برنامه‌ای بنویسید که بررسی کند آیا دو لیست کاملاً برابر هستند یا خیر.

15. حروف بزرگ در یک رشته: برنامه‌ای بنویسید که تمام حروف بزرگ موجود در یک رشته را چاپ کند.

16. جمع اعداد یک عدد چندرقمی: برنامه‌ای بنویسید که تمام ارقام یک عدد را گرفته و جمع آن‌ها را محاسبه کند. به عنوان مثال، برای `456` باید `15` باشد (یعنی `4 + 5 + 6 = 15`).

17. ایجاد دنباله فیبوناچی: برنامه‌ای بنویسید که با استفاده از حلقه `for`، دنباله فیبوناچی تا 10 عدد اول را تولید کند. دنباله فیبوناچی از اعداد 0 و 1 شروع می‌شود و هر عدد حاصل جمع دو عدد قبلی است.

18. جدول ضرب: برنامه‌ای بنویسید که یک جدول ضرب کامل تا 10 × 10 را با استفاده از حلقه‌های `for` چاپ کند.

19. پیدا کردن اعداد اول در یک محدوده: برنامه‌ای بنویسید که تمام اعداد اول بین 1 تا 50 را با استفاده از حلقه `for` چاپ کند.

20. پیدا کردن تعداد کلمات یک جمله: برنامه‌ای بنویسید که تعداد کلمات موجود در یک جمله را شمارش کند. به عنوان مثال، برای جمله‌ی "I love Python programming" خروجی باید `4` باشد.