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

 

راهنمای مطالعه:

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

حلقه for در کنار تابع range

حلقه for و بلاک else

حلقه for تودرتو

کنترل اجرای حلقه for با break و continue

ایجاد حلقه for خالی

مثال از حلقه for

 

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

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

 

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

for [val] in [sequence]:
    [do something]

 

در کد بالا، sequence دنباله ای است که میخواهیم به آیتم های آن دسترسی داشته باشیم و val اشاره به تک آیتم های دنباله میکند. مقدار something هم به طور تکراری اجرا میشود. حلقه for تا زمانی که به آخرین آیتم دنباله برسیم تکرار خواهد شد. بدنه حلقه for با یک تورفتگی از بقیه حلقه جدا شده است.

 

برای اینکه بهتر حلقه for پایتون را درک کنید میتوانید به فلوچارت آن دقت کنید:

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

 

بیایید یک مثال از حلقه for پایتون ببینیم:

names = ['jack', 'kevin', 'mark', 'bob']
for name in names:
	print(name)

# OUTPUT
jack
kevin
mark
bob

 

در مثال بالا، ابتدا یک لیستی از نام ها را داریم. سپس در خط دوم با استفاده از حلقه for درون لیست names پیمایش کرده و تک تک آیتم های آن را چاپ میکنیم.

 

حلقه for در کنار تابع range در پایتون

با تابع range پایتون میتوانیم دنباله ای از اعداد را ایجاد کنیم. مثلا (10)range یک لیست از اعداد 0 تا 9 را ایجاد میکند. همچنین میتوانیم شروع و پایان و فاصله بین اعداد را نیز در range مشخص کنیم:

range(start, stop, step)

 

  • start نقطه شروع اعداد را مشخص میکند که به صورت پیشفرض 0 است.
  • stop نقطه پایان اعداد را مشخص میکند.
  • step فاصله بین اعداد را مشخص میکند که به صورت پیشفرض 1 است.

 

میتوانیم از تابع range در کنار حلقه for نیز استفاده کنیم تا درون دنباله ها پیمایش کنیم. این تابع میتواند با len ترکیب شده و به عنوان شماره ایندکس دنباله استفاده شود. در اینجا یک مثال از range و حلقه for داریم:

genre = ['pop', 'rock', 'jazz']
for i in range(len(genre)):
    print("I like", genre[i])


# OUTPUT
I like pop
I like rock
​I like jazz

 

 

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

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

 

یک مثال از حلقه for و بلوک else ببینیم:

digits = [0, 1, 5]

for i in digits:
    print(i)
else:
    print("No items left.")

 

اگر کد بالا اجرا کنید بلوک else هم اجرا خواهد شد زیرا حلقه به طور کامل بدون مشکل تمام میشود:

0
1
5
No items left.

 

اگر داخل حلقه for از break استفاده کرده باشید بخش else اجرا نخواهد شد:

names = ['jack', 'kevin', 'mark', 'bob']
for name in names:
	if name == 'mark':
		break
	print(name)
else:
	print('Done...')

 

خروجی برنامه بالا به شکل زیر خواهد بود:

jack
kevin

 

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

شما میتوانید هر نوع کدی را داخل حلقه for قرار دهید که به این معنی است که میتوانید حلقه for در حلقه for داشته باشید. قرار دادن یک حلقه for در یک حلقه دیگر کاملا امری عادی است. حلقه های تودرتو یا nested loops به حلقه هایی گفته میشود که داخل یکدیگر باشند. در این حالت به حلقه بیرونی outer loop و به حلقه درونی inner loop گفته میشود. نحوه کار حلقه تودرتو به این شکل است که به ازای هر بار چرخش حلقه بیرونی، حلقه داخلی به طور کامل چرخش های خود را انجام میدهد:

adj = ["red", "big", "tasty"]
fruits = ["apple", "banana", "cherry"]

for x in adj:
    for y in fruits:
        print(x, y) 

 

 

کنترل اجرای حلقه for با break و continue در پایتون

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

 

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

for number in range(1, 11):
    if number % 2 == 0:
        continue
    print(number)

 

در کد بالا، هر زمان که number بر 2 بخش پذیر بود آن دور از حلقه نادیده میگیرد. اگر کد بالا اجرا کنید فقط اعداد فرد نمایش داده میشود.

 

دستور break برخلاف continue اجرای تمام حلقه for را متوقف میکند. به طور مثال، در کد زیر اگر به کلمه elephant برسیم، حلقه for به طور کامل متوقف خواهد شد:

animals = ["monkey", "lion", "elephant", "rhino", "jackal"]
for animal in animals:
    if animal == "elephant":
        print("elephant found. Terminating the loop")
        break
    print(animal)

 

اگر کد بالا را اجرا کنید نتیجه به شکل زیر خواهد بود:

monkey
lion
elephant found. Terminating the loop

 

همانطور که میبینید، بعد از elephant چیزی چاپ نشده است.

 

 

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

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

 

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

for x in [0, 1, 2]:
  pass

 

اکنون می توانید این قطعه کد را بدون خطا اجرا کنید. اگر دستور pass را بردارید، باید کدی را در حلقه بنویسید وگرنه خراب می شود.

 

 

چند مثال از حلقه for در پایتون

حالا که به خوبی با حلقه for پایتون آشنا شدید، میتوانیم چند مثال ببینیم. در مثال اول، تمام کاراکترهای یک رشته را چاپ میکنیم:

string = "Hello World"
for x in string:
    print(x)

 

در مثال دوم، با استفاده از حلقه تودرتو به اعضای یک لیست تودرتو دسترسی پیدا میکنیم:

list_of_lists = [ [1, 2, 3], [4, 5, 6], [7, 8, 9]]
for list in list_of_lists:
    for x in list:
        print(x)

 



0

Intro

10:38

رایگان

1

Variable

12:30

رایگان

2

String

19:22

رایگان

3

List

8:46

رایگان

4

While

9:6

رایگان

5

If

8:37

رایگان

6

For

6:12

رایگان

7

range

4:17

رایگان

8

break, continue, pass

9:15

رایگان

9

Function

12:32

رایگان

10

List methods

12:11

رایگان

11

Tuple

8:29

رایگان

12

Set

7:47

رایگان

13

Dictionary

9:19

رایگان

14

Module

10:40

رایگان

15

fstring

5:35

رایگان

16

format

7:34

رایگان

17

File

17:14

رایگان

18

Scope

6:25

رایگان

19

OOP

12:15

رایگان

20

Method

20:19

رایگان

21

class/instance variable

14:7

رایگان

22

class/static method

13:25

رایگان

23

Inheritance

17:6

رایگان

24

Special methods

9:50

رایگان

25

Access points

11:12

رایگان

26

property

6:54

رایگان

27

Exceptions

21:17

رایگان

28

Standard library

12:51

رایگان

29

Docstring

10:49

رایگان

30

Virtualenv

11:2

رایگان

دوره های پیشنهادی

دوره آموزش لینوکس(linux)
دوره آموزش لینوکس(linux)
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش CBV در جنگو
دوره آموزش CBV در جنگو
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش ریاضیات یادگیری ماشین
دوره آموزش ریاضیات یادگیری ماشین
تکمیل ضبط
امیرحسین بیگدلو



ارسال نظر


مصطفی

8 ماه قبل پاسخ به نظر

سلام
ممنون از آموزش‌ها و بخصوص تعیین یک مسیر آموزشی خوب.
با تشکر

ارسال نظر



گندم

1 سال قبل پاسخ به نظر

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

ارسال نظر



امیرحسین بیگدلو

1 سال قبل

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

مونگارد