خانه » آموزش » حلقه for در پایتون؛ آموزش for، range، break و continue
حلقه for در پایتون

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

جلسه ۱۶ آموزش پایتون: حلقه for و پیمایش داده‌ها

در جلسه‌های قبل یاد گرفتیم که پایتون چگونه با استفاده از if، elif و else تصمیم‌گیری می‌کند و در جلسه ۱۵ با حلقه while یاد گرفتیم چگونه یک بخش از برنامه را چندین بار اجرا کنیم.

اما یک سؤال مهم باقی می‌ماند:

اگر بخواهیم روی تک‌تک اعضای یک لیست، رشته یا مجموعه‌ای از داده‌ها عملیات انجام دهیم، چه کار باید کنیم؟

اینجاست که حلقه for در پایتون وارد می‌شود.

تحقیق و تدوین مهدی گمرکی

در این جلسه چه یاد می‌گیریم؟

در پایان این درس با موارد زیر آشنا خواهید شد:

  • حلقه for در پایتون چیست؟
  • نحوه نوشتن حلقه for
  • پیمایش لیست‌ها
  • پیمایش رشته‌ها
  • استفاده از تابع range()
  • استفاده از for همراه با if
  • دستورهای break و continue در حلقه for
  • حلقه‌های تو در تو
  • خطاهای رایج هنگام استفاده از for
  • چند تمرین برای تسلط بیشتر

حلقه for در پایتون چیست؟

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

برای مثال، فرض کنید لیستی از نام چند دانشجو داریم:

students = ["Ali", "Sara", "Reza", "Mina"]

اگر بخواهیم نام همه دانشجوها را چاپ کنیم، لازم نیست برای هر کدام یک print جداگانه بنویسیم.

می‌توانیم از for استفاده کنیم:

students = ["Ali", "Sara", "Reza", "Mina"]

for student in students:
    print(student)

خروجی:

Ali
Sara
Reza
Mina

در اینجا پایتون یکی‌یکی اعضای لیست را در متغیر student قرار می‌دهد و دستور print را اجرا می‌کند.

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

ساختار ساده حلقه for به شکل زیر است:

for variable in iterable:
    # code

برای مثال:

for number in [1, 2, 3, 4, 5]:
    print(number)

در هر مرحله، یکی از اعداد داخل متغیر number قرار می‌گیرد.

یعنی تقریباً این اتفاق رخ می‌دهد:

number = 1
number = 2
number = 3
number = 4
number = 5

و برای هر مرحله، print(number) اجرا می‌شود.

پیمایش لیست با for

یکی از مهم‌ترین کاربردهای for، پیمایش لیست‌هاست.

مثلاً:

fruits = ["apple", "banana", "orange"]

for fruit in fruits:
    print(fruit)

خروجی:

apple
banana
orange

اما می‌توانیم عملیات بیشتری نیز روی هر عضو انجام دهیم.

prices = [100, 200, 300]

for price in prices:
    print(price * 2)

خروجی:

200
400
600

یعنی پایتون هر عضو را دریافت کرده و عملیات موردنظر ما را روی آن انجام می‌دهد.

✅ بیشتر بخوانیم 👈👈👈  روز جهانی عکاسی؛ ارزش عکس در عصر هوش مصنوعی

پیمایش رشته با for

یکی از ویژگی‌های جالب پایتون این است که می‌توانیم روی رشته‌ها نیز حلقه ایجاد کنیم.

مثلاً:

word = "Python"

for letter in word:
    print(letter)

خروجی:

P
y
t
h
o
n

در این مثال، پایتون رشته را کاراکتر به کاراکتر بررسی می‌کند.

این قابلیت در پردازش متن، جست‌وجوی کاراکترها و بسیاری از پروژه‌های واقعی کاربرد دارد.

تابع range() در پایتون

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

در این شرایط، تابع range() بسیار کاربردی است.

مثلاً:

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

خروجی:

0
1
2
3
4

نکته مهم این است که range(5) اعداد از ۰ تا قبل از ۵ را تولید می‌کند.

پس:

range(5)

یعنی:

0, 1, 2, 3, 4

شروع و پایان در range()

می‌توانیم نقطه شروع را نیز مشخص کنیم:

for number in range(2, 6):
    print(number)

خروجی:

2
3
4
5

ساختار آن:

range(start, stop)

است.

عدد stop در خروجی قرار نمی‌گیرد.

تعیین گام در range()

حتی می‌توانیم مشخص کنیم اعداد با چه فاصله‌ای تولید شوند:

for number in range(0, 10, 2):
    print(number)

خروجی:

0
2
4
6
8

در اینجا عدد سوم یعنی 2، گام حرکت است.

ترکیب for با if

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

مثلاً فرض کنید می‌خواهیم فقط اعداد زوج را از یک لیست پیدا کنیم:

numbers = [1, 2, 3, 4, 5, 6, 7, 8]

for number in numbers:
    if number % 2 == 0:
        print(number)

خروجی:

2
4
6
8

اینجا حلقه for روی تمام اعداد حرکت می‌کند و if بررسی می‌کند که آیا عدد زوج است یا خیر.

این دقیقاً همان جایی است که مباحث جلسات قبلی به یکدیگر متصل می‌شوند:

حلقه + شرط = امکان ساخت منطق‌های کاربردی‌تر

دستور break در حلقه for

در جلسه قبل با break آشنا شدیم.

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

مثلاً:

numbers = [1, 2, 3, 4, 5]

for number in numbers:
    if number == 3:
        break

    print(number)

خروجی:

1
2

وقتی پایتون به عدد 3 می‌رسد، break اجرا شده و حلقه پایان پیدا می‌کند.

✅ بیشتر بخوانیم 👈👈👈  شهر اصفهان پایلوت شهر هوشمند کشور شد

دستور continue در حلقه for

continue برخلاف break کل حلقه را متوقف نمی‌کند.

این دستور فقط باعث می‌شود اجرای همان تکرار فعلی رد شود و حلقه به سراغ مرحله بعدی برود.

مثلاً:

numbers = [1, 2, 3, 4, 5]

for number in numbers:
    if number == 3:
        continue

    print(number)

خروجی:

1
2
4
5

عدد 3 چاپ نشده است، اما حلقه همچنان ادامه پیدا کرده است.

تفاوت مهم

break:
کل حلقه را متوقف می‌کند.

continue:
فقط تکرار فعلی را رد می‌کند.

حلقه‌های for تو در تو

گاهی لازم است یک حلقه را داخل حلقه دیگری قرار دهیم. به این ساختار، حلقه تو در تو یا nested loop می‌گوییم.

مثلاً:

for i in range(3):
    for j in range(2):
        print(i, j)

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

حلقه‌های تو در تو در مواردی مانند کار با جدول‌ها، ماتریس‌ها و داده‌های چندبعدی بسیار کاربرد دارند.

یک مثال کاربردی

فرض کنید می‌خواهیم نمرات چند دانش‌آموز را بررسی کنیم و مشخص کنیم چه کسانی نمره قبولی گرفته‌اند:

scores = [18, 12, 9, 16, 7]

for score in scores:
    if score >= 10:
        print("قبول:", score)
    else:
        print("مردود:", score)

خروجی:

قبول: 18
قبول: 12
مردود: 9
قبول: 16
مردود: 7

در این مثال چند مفهوم را هم‌زمان استفاده کردیم:

  • لیست
  • حلقه for
  • شرط if
  • عملگر مقایسه‌ای
  • خروجی گرفتن با print

این ترکیب‌ها پایه بسیاری از برنامه‌های واقعی هستند.

یک اشتباه رایج در حلقه for

یکی از اشتباهات رایج، فراموش کردن : در پایان خط for است.

اشتباه:

for number in numbers
    print(number)

درست:

for number in numbers:
    print(number)

همچنین باید به تورفتگی یا indentation توجه کنیم.

در پایتون، تورفتگی فقط برای زیبایی کد نیست؛ بخشی از ساختار برنامه است.

for یا while؟ کدام را استفاده کنیم؟

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

زمانی که for مناسب‌تر است

وقتی می‌دانیم می‌خواهیم روی یک مجموعه یا تعداد مشخصی از داده‌ها حرکت کنیم:

for item in items:
    print(item)

زمانی که while مناسب‌تر است

وقتی ادامه پیدا کردن حلقه به یک شرط وابسته است و تعداد تکرارها از قبل مشخص نیست:

while condition:
    # code

به زبان ساده:

✅ بیشتر بخوانیم 👈👈👈  مشخصات گلکسی S27 اولترا؛ طراحی و دوربین جدید فاش شد

for بیشتر برای پیمایش و تکرار مشخص کاربرد دارد.

while بیشتر برای تکرار وابسته به شرط کاربرد دارد.

البته در پایتون بسیاری از مسائل را می‌توان با هر دو روش حل کرد.

تمرین‌های جلسه ۱۶

برای اینکه مطالب این جلسه کاملاً جا بیفتد، تمرین‌های زیر را انجام دهید.

تمرین ۱

برنامه‌ای بنویسید که اعداد 1 تا 10 را چاپ کند.

تمرین ۲

برنامه‌ای بنویسید که فقط اعداد زوج بین 1 تا 20 را نمایش دهد.

تمرین ۳

یک لیست از نام چند نفر ایجاد کنید و با for نام همه آن‌ها را چاپ کنید.

تمرین ۴

برنامه‌ای بنویسید که اعداد یک لیست را بررسی کند و فقط اعداد بزرگ‌تر از 10 را نمایش دهد.

تمرین چالشی

برنامه‌ای بنویسید که از 1 تا 100 حرکت کند و:

  • اگر عدد بر 3 بخش‌پذیر بود، عبارت Fizz را چاپ کند.
  • اگر بر 5 بخش‌پذیر بود، عبارت Buzz را چاپ کند.
  • اگر هم بر 3 و هم بر 5 بخش‌پذیر بود، FizzBuzz را چاپ کند.
  • در غیر این صورت خود عدد را چاپ کند.

این تمرین یکی از تمرین‌های شناخته‌شده برای تقویت مهارت حل مسئله و ترکیب حلقه و شرط است.

جمع‌بندی جلسه ۱۶

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

یاد گرفتیم که چگونه:

  • روی اعضای یک لیست حرکت کنیم؛
  • کاراکترهای یک رشته را بررسی کنیم؛
  • با range() تعداد مشخصی تکرار ایجاد کنیم؛
  • for را با if ترکیب کنیم؛
  • با break حلقه را متوقف کنیم؛
  • با continue یک تکرار را رد کنیم؛
  • و از حلقه‌های تو در تو استفاده کنیم.

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

در جلسه ۱۷ یک قدم مهم‌تر برمی‌داریم و سراغ لیست‌ها در پایتون و کار با داده‌های چندتایی می‌رویم؛ جایی که یاد می‌گیریم چگونه داده‌ها را ایجاد، تغییر، حذف و مدیریت کنیم و با متدهای مهم لیست کار کنیم.

تحقیق و تدوین مهدی گمرکی

مشاور تجارت الکترونیک

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

برای ثبت نظر عبارت ریاضی را وارد کنید! *در حال بارگذاری کپچا...