حلقه تکرار for در Python

مقدمه

حلقه for در پایتون یک تابع تکراری است. اگر یک شی دنباله مانند یک لیست دارید، می توانید از حلقه for برای تکرار روی آیتم های موجود در لیست استفاده کنید. عملکرد حلقه for با آنچه در چندین زبان برنامه نویسی دیگر می بینید تفاوت چندانی ندارد. در این مقاله، حلقه for Python را با جزئیات بررسی می‌کنیم و یاد می‌گیریم که روی دنباله‌های مختلف از جمله لیست‌ها، تاپل‌ها و موارد دیگر تکرار کنیم. علاوه بر این، ما یاد خواهیم گرفت که با استفاده از دستورات break و continue، جریان حلقه را کنترل کنیم.

چه زمانی for Loop استفاده شود

هر زمان که نیاز دارید یک بلوک کد را چندین بار تکرار کنید. اگر نمی دانید چند بار باید تکرار شود، به جای آن از عبارت “while loop” استفاده کنید.

نحو حلقه تکرار for

سینتکس اصلی حلقه for در پایتون چیزی شبیه به آنچه در زیر ذکر شده است به نظر می رسد.

for itarator_variable in sequence_name:
Statements
. . .
Statements

Python for loop syntax با جزئیات

  • اولین کلمه عبارت با کلمه کلیدی “for” شروع می شود که به معنای شروع حلقه for است.
  • سپس متغیر تکرار کننده را داریم که روی دنباله تکرار می شود و می تواند در داخل حلقه برای انجام توابع مختلف استفاده شود.
  • مورد بعدی کلمه کلیدی “in” در پایتون است که به متغیر تکرار کننده می گوید برای عناصر داخل دنباله حلقه بزند.
  • و در نهایت، متغیر sequence را داریم که می تواند یک لیست، یک تاپل یا هر نوع تکرار کننده دیگری باشد.
  • بخش عبارات حلقه جایی است که می توانید با متغیر تکرار کننده بازی کنید و عملکردهای مختلفی را انجام دهید

حروف جداگانه یک رشته را با استفاده از حلقه for چاپ کنید

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

در اینجا نحوه انجام این کار برای شما آمده است.

word="anaconda"
for letter in word:
print (letter)
a
n
a
c
o
n
d
a

دلیل اینکه این حلقه کار می کند این است که پایتون به جای اینکه به رشته به عنوان یک کل نگاه کند، “رشته” را به عنوان دنباله ای از کاراکترها در نظر می گیرد.

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

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

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
print (word)

خروجی:

Apple
Banana
Car
Dolphin

اکنون، بیایید به جلو برویم و روی عناصر یک تاپل در اینجا کار کنیم.

nums = (1, 2, 3, 4)
sum_nums = 0
for num in nums:
sum_nums = sum_nums + num
print(f'Sum of numbers is {sum_nums}')
# Output
# Sum of numbers is 10

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

وقتی یک حلقه for در داخل حلقه for دیگری داریم، به آن حلقه for تو در تو می گویند. کاربردهای متعددی از یک حلقه for تو در تو وجود دارد. مثال لیست بالا را در نظر بگیرید. حلقه for کلمات جداگانه را از لیست چاپ می کند. اما اگر بخواهیم به جای آن، نویسه های جداگانه هر یک از کلمات موجود در لیست را چاپ کنیم، چه؟

اینجاست که یک حلقه for تو در تو بهتر کار می کند. حلقه اول (حلقه والد) یک به یک کلمات را مرور می کند. حلقه دوم (حلقه کودک) بر روی کاراکترهای هر یک از کلمات حلقه خواهد شد.

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
#This loop is fetching word from the list
print ("The following lines will print each letters of "+word)
for letter in word:
#This loop is fetching letter for the word
print (letter)
print("") #This print is used to print a blank line

خروجی:


یک حلقه تو در تو از نظر ساختاری شبیه دستورات if تودرتو است

برای حلقه با تابع range()

Python range() یکی از توابع داخلی است. هنگامی که می خواهید حلقه for برای تعداد مشخصی اجرا شود، یا باید محدوده ای از اشیاء را برای چاپ مشخص کنید، تابع range واقعاً خوب کار می کند.

هنگام کار با range()، می توانید بین 1 تا 3 آرگومان عدد صحیح به آن ارسال کنید:

  • start مقدار صحیحی را بیان می‌کند که دنباله از آن شروع می‌شود، اگر این شامل نباشد، شروع از 0 شروع می‌شود.
  • Stop همیشه مورد نیاز است و عدد صحیحی است که تا شمارش می شود اما شامل نمی شود
  • step میزان افزایش (یا کاهش در مورد اعداد منفی) تکرار بعدی را تعیین می‌کند، اگر این مورد حذف شد، مرحله پیش‌فرض 1 است.

مثال زیر را در نظر بگیرید که من می خواهم اعداد 1، 2 و 3 را چاپ کنم:

for x in range(3):
print("Printing:", x)
# Output
# Printing: 0
# Printing: 1
# Printing: 2

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

در مثال زیر، من از عدد 3 به عنوان مرحله استفاده کرده ام و می توانید ببینید که اعداد خروجی عدد قبلی + 3 هستند.

for n in range(1, 10, 3):
print("Printing with step:", n)
# Output
# Printing with step: 1
# Printing with step: 4
# Printing with step: 7

همچنین می‌توانیم از یک مقدار منفی برای آرگومان گام خود برای تکرار به عقب استفاده کنیم، اما باید آرگومان‌های شروع و توقف را بر این اساس تنظیم کنیم:

for i in range(100,0,-10):
print(i)

در اینجا 100 مقدار شروع، 0 مقدار توقف و 10- محدوده است، بنابراین حلقه از 100 شروع می شود و در 0 به پایان می رسد و با هر تکرار 10 کاهش می یابد. این در خروجی رخ می دهد:

Output
100
90
80
70
60
50
40
30
20
10

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

عبارت Break با حلقه for

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

در این مورد، از شرط Python if else به همراه حلقه for خود استفاده خواهیم کرد.

nums = [1, 2, 3, 4, 5, 6]
n = 2
found = False
for num in nums:
if n == num:
found = True
break
print(f'List contains {n}: {found}')
# Output
# List contains 2: True

عبارت continue با حلقه for

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

nums = [1, 2, -3, 4, -5, 6]
sum_positives = 0
for num in nums:
if num < 0:
continue
sum_positives += num
print(f'Sum of Positive Numbers: {sum_positives}')

پایتون برای حلقه با یک بلوک else

می توانیم از بلوک else با حلقه for Python استفاده کنیم. بلوک else فقط زمانی اجرا می شود که حلقه for با دستور break خاتمه نیابد. فرض کنید ما تابعی داریم که مجموع اعداد را اگر و فقط در صورتی که همه اعداد زوج باشند چاپ کنیم. در صورت وجود یک عدد فرد می توانیم از دستور break برای پایان دادن به حلقه for استفاده کنیم. می‌توانیم مجموع را در قسمت else چاپ کنیم تا زمانی که حلقه for به طور معمول اجرا شود، چاپ شود.

def print_sum_even_nums(even_nums):
total = 0
for x in even_nums:
if x % 2 != 0:
break
total += x
else:
print("For loop executed normally")
print(f'Sum of numbers {total}')
# this will print the sum
print_sum_even_nums([2, 4, 6, 8])
# this won't print the sum because of an odd number in the sequence
print_sum_even_nums([2, 4, 5, 8])
# Output
# For loop executed normally
# Sum of numbers 20

برای حلقه ها با استفاده از انواع داده های متوالی

لیست ها و دیگر انواع توالی داده ها نیز می توانند به عنوان پارامترهای تکرار در حلقه های for استفاده شوند. به جای تکرار از طریق range()، می توانید یک لیست تعریف کنید و از طریق آن لیست تکرار کنید. ما یک لیست را به یک متغیر اختصاص می دهیم و سپس در لیست تکرار می کنیم:

sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']
for shark in sharks:
print(shark)

در این مورد، ما در حال چاپ هر مورد در لیست هستیم. اگرچه از متغیر shark استفاده کردیم، می‌توانستیم متغیر را با هر نام معتبر دیگری صدا کنیم و همان خروجی را دریافت کنیم:

Output
hammerhead
great white
dogfish
frilled
bullhead
requiem

خروجی بالا نشان می دهد که حلقه for در لیست تکرار می شود و هر مورد را از لیست در هر خط چاپ می کند. لیست‌ها و دیگر انواع داده‌های مبتنی بر توالی مانند رشته‌ها و تاپل‌ها معمولاً برای استفاده در حلقه‌ها استفاده می‌شوند زیرا تکرارپذیر هستند. می‌توانید این نوع داده‌ها را با range() ترکیب کنید تا مواردی را به یک لیست اضافه کنید، به عنوان مثال:

sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']
for item in range(len(sharks)):
sharks.append('shark')
print(sharks)
Output
['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark']

در اینجا، برای هر مورد از طول لیست کوسه ها، یک رشته مکان نگهدار از «کوسه» اضافه کرده ایم. همچنین می توانید از حلقه for برای ساختن یک لیست از ابتدا استفاده کنید:

integers = []
for i in range(10):
integers.append(i)
print(integers)

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

Output
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

به طور مشابه، می توانیم از طریق رشته ها تکرار کنیم:

sammy = 'Sammy'
for letter in sammy:
print(letter)
Output
S
a
m
m
y

تکرار از طریق تاپل ها به همان فرمت تکرار از طریق لیست ها یا رشته های بالا انجام می شود. هنگام تکرار از طریق فرهنگ لغت، مهم است که کلید: ساختار ارزش را در ذهن داشته باشید تا مطمئن شوید که عنصر صحیح فرهنگ لغت را فراخوانی می کنید. در اینجا یک مثال است که هم کلید و هم مقدار را فراخوانی می کند:

sammy_shark = {'name': 'Sammy', 'animal': 'shark', 'color': 'blue', 'location': 'ocean'}
for key in sammy_shark:
print(key + ': ' + sammy_shark[key])
Output
name: Sammy
animal: shark
location: ocean
color: blue

هنگام استفاده از دیکشنری با حلقه‌های for، متغیر تکراری با کلیدهای فرهنگ لغت، و dictionary_variable[iterating_variable] با مقادیر مطابقت دارد. در مورد بالا، از کلید متغیر تکراری برای نشان دادن کلید، و sammy_shark[key] برای مخفف مقادیر استفاده شد. حلقه ها اغلب برای تکرار و دستکاری انواع داده های متوالی استفاده می شوند.

نتیجه

حلقه for در پایتون بسیار شبیه به سایر زبان های برنامه نویسی است. ما می توانیم از دستورات break و continue با حلقه for برای تغییر اجرا استفاده کنیم. با این حال، در پایتون، می‌توانیم اختیاری دیگری را نیز مسدود کنیم.

[تعداد: 1   میانگین: 5/5]
دیدگاهتان را بنویسید

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

شاید دوست داشته باشید