پایتون

جلسه ۲۹: حلقه for در پایتون

این درس در مورد ویژگی های حلقه های for خواهد بود.

حلقه‌های for برای تکرار یک توالی نیازمند یک تکرارکننده به اسم iterator دارد. به عنوان مثال یک دنباله از اعداد، یا المان های یک لیست. که در نگاهی ساده‌تر، تکرارکننده، یک متغیر است که روی یک لیست حرکت میکند.

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

یک حلقه زمانی به پایان میرسد که تکرارکننده نیز به انتها برسد.

ساختار

در یک حلقه for نیازمند هستیم تا سه کار اصلی زیر را انجام دهیم:

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

حلقه ها در این روش با کلمه کلیدی for شروع میشوند. بدنه اصلی حلقه به اندازه یک tab به سمت راست تورفتگی دارد.

کلمه in مشخص میسازد که تکرارکننده (iterator) روی مقادیر sequence حرکت میکند.(sequence میتواند یک لیست باشد)

حلقه روی یک رنجی از اعداد

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

range(start, end, step)

مقدار end در تکرار حلقه شامل نمیشود.

اگر start نیز تعریف نشود به طور پیش فرض مقدار آن صفر است.

step مشخص کننده این است که تکرار کننده در هر حلقه چه مقدار آپدیت شود یکی یکی یا چندتا چند تا. این مورد لزومی به تعریف ندارد و اگر تعریف نشود به طور پیش فرض مقدار آن یک در نظر گرفته میشود. این یعنی اینکه در هر حلقه، تکرارکننده یکی به مقدارش اضافه میشود.

در کد زیر ببینید که چگونه حلقه for میتواند روی یک رنج از داده‌های integer حرکت کند.

for i in range(1, 11):  # A sequence from 1 to 10
    if i % 2 == 0:
        print(i, " is even")
    else:
        print(i, " is odd")

همانطور که در بالا میبینید، به جای اینکه اعداد از ۱ تا ۱۰ را یکی یکی، زوج یا فرد بودنشان را بررسی کنیم، میتوانیم روی این بازه یک حلقه‌ای داشته باشیم و مقدار i%2==0 را برای هر کدام از اعداد بررسی کنیم.

تکرارکننده i در مثال بالا از ۱ شروع میشود و در هر بار انجام دستورات حلقه، مقدار آن یکی افزایش میابد تا به عدد ۱۰ برسد.

حال ببینیم که چگونه با تعریف مقدار step، حلقه ما تغییر پیدا میکند:

for i in range(1, 11, 3):  # A sequence from 1 to 10 with a step of 3
    print(i)

حلقه روی یک لیست یا string

یک لیست یا string میتواند بر اساس index های آن تکراربشود. در مثال زیر اعضای یک لیست را به کمک حلقه for دوبرابر میکنیم.

float_list = [2.5, 16.42, 10.77, 8.3, 34.21]
print(float_list)

for i in range(0, len(float_list)):  # Iterator traverses to the last index of the list
    float_list[i] = float_list[i] * 2

print(float_list)

ما همچنین میتوانیم روی اعضای یک لیست، با استفاده از تکرارکننده، به طور مستقیم حرکت کنیم. در float_list بالا، بررسی میکنیم که چه تعداد از اعضا بزرگتر از ۱۰ هستند:

float_list = [2.5, 16.42, 10.77, 8.3, 34.21]
count_greater = 0

for num in float_list:  # Iterator traverses to the last index of the list
    if num > 10:
        count_greater += 1

print(count_greater)

در کد بالا num تکرارکننده ماست. نکته مهمی که در مثال بالا باید توجه کنید این است که، با تغییر num مقدار آن در لیست تغییر نخواهد کرد؛ چراکه num در هر تکرار حلقه کپی‌ای از هر کدام از اعضای لیست است.

در درس بعد در مورد for های تو در تو یاد خواهیم گرفت.

نوشته های مشابه

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

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

دکمه بازگشت به بالا