حلقه های پایتون (با مثال) – JC Chouinard

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

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

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

مثال‌هایی از حلقه‌های پایتون

# while loop
j = 0 
while j < 3:
    print(j)
    j+=1
# For loop
for i in [0,1,2]:
    print(i)

نحو حلقه های پایتون

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

# Python loop syntax
for elem in condition:
    # body of the loop (indented)

while condition:
    # body of the loop (indented)

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

دو نوع حلقه در پایتون وجود دارد: for حلقه ها و while حلقه ها

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

  • while حلقه: تا زمانی که شرط True باشد به صورت بازگشتی حلقه بزنید
  • for حلقه: هر مقدار از یک دنباله را حلقه کنید

زمان استفاده از حلقه‌ها و حلقه‌های while

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

را while حلقه باید در صورت نیاز استفاده شود یک بلوک کد را اجرا کنید یا یک شرط را در هر تکرار برای همیشه بررسی کنید.

Python while Loop

را while حلقه در پایتون یک بلوک کد را تا زمانی که شرط وجود دارد اجرا می کند True.

مشابه a if... else... بلوکی که بارها و بارها تکرار می شود.

while condition:
    # do something

یک حلقه while ساده ایجاد کنید

برای ایجاد یک ساده while حلقه در پایتون استفاده کنید while کلمه کلیدی، شرطی را برای تعریف زمانی که حلقه باید متوقف شود ارائه کنید و کد تورفتگی را اضافه کنید تا در هر تکرار درست بعد از کاراکتر کولون اجرا شود.

# Simple while loop
i = 0
while i < 5:
    print(i)
    i += 1
0
1
2
3
4

حلقه های while بی نهایت

طبق تعریف، while حلقه ها تا زمانی که یک شرط برآورده شود تکرار می شوند. اگر شرط همیشه باشد True، سپس حلقه تا بی نهایت ادامه خواهد داشت.

# Infinite Loop
import time

while True:
    print('This is an infinite loop')
    time.sleep(1)

شکستن یک حلقه while در پایتون

از آنجا که while حلقه می تواند بی نهایت اجرا شود، مهم است که شرایطی را فراهم کنیم که در آن حلقه متوقف شود. این امر می تواند با فراهم آوردن شرایطی از جمله i < 5، و افزایش i تا زمانی که به 5 برسد یا با استفاده از break بیانیه کنترل

# Simple while loop
i = 0
while i < 5:
    print(i)
    if i == 2:
        break
    i += 1
0
1
2

در حالی که … دیگری در پایتون

آ while حلقه به طور مشابه به عنوان یک دستور if/else عمل می کند (اگر شرط True است، دوباره شروع کنید). بنابراین، از else کلمه کلیدی برای تعریف اینکه چه کاری باید انجام شود while حلقه تکرار را متوقف می کند.

# While Else
i = 0
while i < 5:
    print(i)
    i += 1
else:
    print('i is greater than 5')
0
1
2
3
4
i is greater than 5

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

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

مثال: برای هر مقدار در یک دنباله، کاری انجام دهید.

ساده برای حلقه

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

# Simple for loop
for i in [1,2,3]:
    print(i)
1
2
3

نحوه حلقه زدن از طریق یک رشته در پایتون

برای حلقه زدن از طریق یک رشته در پایتون، از حلقه for استفاده کنید و رشته پایتون را به عنوان تکرارپذیر در عبارت for ارائه کنید.

# Looping other types
for letter in 'python':
    print(letter)
p
y
t
h
o
n

بیانیه های کنترل حلقه

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

مطالب پیشنهادی  Joost به موقعیت جدیدی در Yoast و Newfold منتقل می شود • Yoast

عبارت Break در حلقه پایتون چیست؟

را break دستور در حلقه پایتون برای متوقف کردن اجرای حلقه در صورت تحقق یک شرط استفاده می شود.

# Break
for letter in 'python':
    print(letter)
    if letter == 'h':
        break
p
y
t
h

عبارت Continue در حلقه پایتون چیست؟

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

# Continue
for letter in 'python':
    if letter == 'h':
        continue
    print(letter)
p
y
t
o
n

عبارت Pass in a Loop چیست؟

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

# pass
for i in [1,2,3]:
    pass

Looping Through the Range()

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

تابع range() داخلی پایتون دنباله ای از اعداد را برمی گرداند که به طور پیش فرض از 0 شروع می شود.

حلقه ساده پایتون Range().

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

# Looping a Range
for i in range(5):
    print(i)
0
1
2
3
4

از پارامترهای Range() در Python For Loop استفاده کنید

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

# Range Parameters
rg = range(
        2,  # Start
        20, # End
        2   # Increment
        )

for x in rg:
    print(x)
2
4
6
8
10
12
14
16
18

نحوه ایجاد حلقه های Nested For

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

Simple Nested For Loop در پایتون

برای ایجاد یک تو در تو ساده for حلقه، با یک معمولی شروع کنید for حلقه را با ارائه یک دنباله برای تکرار مجدد، و در داخل آن حلقه، یک حلقه اضافی ایجاد کنید for حلقه با یک دنباله دیگر برای تکرار.

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

# Nested loop
for i in ['a','b','c']:
    for j in ['d','e','f']:
        print(i, j)
a d
a e
a f
b d
b e
b f
c d
c e
c f

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

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

# Loop a nested list
ls = [
    [1,2,3],
    [4,5,6]
]

for nst in ls:
    for i in nst:
        print(i)
1
2
3
4
5
6

نحوه حلقه زدن از طریق دیکشنری در پایتون

برای حلقه زدن از طریق دیکشنری در پایتون، از a استفاده کنید for حلقه بزنید و فرهنگ لغت را به عنوان دنباله حلقه در نظر بگیرید. شما همچنین می توانید استفاده کنید .keys()، .values() و .items() متد روی فرهنگ لغت برای حلقه زدن دنباله هایی که متدهای دیکشنری برمی گردند.

در اینجا یک فرهنگ لغت مثال است که در آن با a تکرار می کنیم for حلقه

# Create dict
my_dict = dict(
    name='JC',
    last_name='Chouinard',
    domain='jcchouinard.com',
    twitter='ChouinardJC'
)
my_dict
{'name': 'JC',
 'last_name': 'Chouinard',
 'domain': 'jcchouinard.com',
 'twitter': 'ChouinardJC'}

نحوه استفاده از روش های دیکشنری در حلقه های For

نتایج روش‌های فرهنگ لغت را به صورت دنباله‌ای از for حلقه به منظور تکرار از طریق کلیدها، مقادیر یا جفت های کلید-مقدار فرهنگ لغت پایتون.

  • my_dict.keys(): یک لیست مانند را نشان می دهد dict_keys() موضوع کلیدهای فرهنگ لغت شما
  • my_dict.values(): یک لیست مانند را نشان می دهد dict_values() موضوع ارزش های فرهنگ لغت شما
  • my_dict.items(): یک لیست مانند را نشان می دهد dict_items() شی با تاپل های حاوی فرهنگ لغت (کلیدها، مقادیر)
مطالب پیشنهادی  LinkedIn ابزاری جدید برای جویندگان شغل راه اندازی می کند

چگونه از طریق کلیدهای دیکشنری حلقه بزنیم

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

# Show dictionary keys
my_dict.keys() 
dict_keys(['name', 'last_name', 'domain', 'twitter'])

مثالی از حلقه زدن کلیدهای دیکشنری

# Print Keys
for x in my_dict.keys():
    print(x)
name
last_name
domain
twitter

چگونه از طریق مقادیر دیکشنری حلقه بزنیم

برای حلقه زدن مقادیر فرهنگ لغت پایتون، از .values() روش برای ایجاد دنباله برای for حلقه برای تکرار.

# Values method
my_dict.values()
dict_values(['JC', 'Chouinard', 'jcchouinard.com', 'ChouinardJC'])

نمونه ای از حلقه زدن از طریق ارزش های دیکشنری

# print values
for x in my_dict.values():
    print(x)
JC
Chouinard
jcchouinard.com
ChouinardJC

نمونه ای از دسترسی به مقادیر دیکشنری بدون استفاده از .values() روش.

# Print values
for x in my_dict:
    print(my_dict[x])
JC
Chouinard
jcchouinard.com
ChouinardJC

چگونه از طریق آیتم های دیکشنری حلقه بزنیم

برای حلقه زدن از طریق جفت های کلید-مقدار فرهنگ لغت پایتون، از .item() روش برای ایجاد دنباله برای for حلقه برای تکرار.

# Items method
my_dict.items()
dict_items([('name', 'JC'), ('last_name', 'Chouinard'), ('domain', 'jcchouinard.com'), ('twitter', 'ChouinardJC')])

مثال 1: حلقه زدن از طریق دیکشنری بسته بندی جفت کلید-مقدار

# Print Keys and values
for x in my_dict.items():
    print(x[0], x[1])
name JC
last_name Chouinard
domain jcchouinard.com
twitter ChouinardJC

مثال 2: حلقه زدن از طریق دیکشنری بدون بسته بندی جفت کلید-مقدار

# Print Keys and values
for key, value in my_dict.items():
    print(key, value)
name JC
last_name Chouinard
domain jcchouinard.com
twitter ChouinardJC

نحوه حلقه زدن از طریق Iterators در پایتون

2 راه برای حلقه کردن و تکرار در پایتون وجود دارد: استفاده از next() تابع یا با استفاده از یک تکنیک حلقه مانند a for حلقه یا a while حلقه

تکرار کننده پایتون شی ای است که می توان روی آن تکرار کرد.

# next()
ls = ['a','b','c']
en_object = iter(ls)
next(en_object)
(0, 'a')
# Looping an iterator
ls = ['a','b','c']
for letter in iter(ls):
    print(letter)
a
b
c

چگونه از طریق یک DataFrame پاندا در پایتون حلقه بزنیم

برای حلقه زدن از طریق Pandas DataFrame در پایتون، می توانید از روش های مختلفی مانند iterrows()، itertuples()، یا به سادگی به ستون های DataFrame دسترسی پیدا کنید و آنها را به عنوان دنباله ای از آن ارسال کنید for حلقه

# Create DataFrame
import pandas as pd

df = pd.DataFrame({
    'column_1': [1, 2, 3], 
    'column_2': [4, 5, 6],
    'column_3': [7, 8, 9]
    })
df

چگونه می توان از طریق نام ستون های DataFrame Pandas Loop کرد

برای حلقه زدن نام ستون های Pandas DataFrame در پایتون، می توانید از DataFrame یا آن استفاده کنید. columns نسبت داده و روی آن تکرار کنید. در اینجا یک مثال است:

# Loop each column name
for column in df:
    print(column)

# Or
for column in df.columns:
    print(column)
column_1
column_2
column_3

چگونه از طریق ردیف های یک DataFrame با iterrows () حلقه بزنیم

برای حلقه زدن در ردیف های یک Pandas DataFrame در پایتون، می توانید از iterrows() تابع برای ایجاد دنباله مورد استفاده در a for حلقه

مثال زیر یک تکرار کننده نمونه ساخته شده از Pandas DataFrame را نشان می دهد.

<generator object DataFrame.iterrows at 0x29ff0a730>
# Generator object
next(df.iterrows())
(0,
 column_1    1
 column_2    4
 column_3    7
 Name: 0, dtype: int64)

از فرمت برای استفاده کنید index,row in df.iterrows() برای چرخش در ردیف های یک DataFrame Pandas.

# Looping rows of a Pandas DataFrame
for index, row in df.iterrows():
    print(f'Index: {index}')
    print(f'Row: {row}')
    print(f'Row Type: {type(row)}')
Index: 0
Row: column_1    1
column_2    4
column_3    7
Name: 0, dtype: int64
Row Type: <class 'pandas.core.series.Series'>
Index: 1
Row: column_1    2
column_2    5
column_3    8
Name: 1, dtype: int64
Row Type: <class 'pandas.core.series.Series'>
Index: 2
Row: column_1    3
column_2    6
column_3    9
Name: 2, dtype: int64
Row Type: <class 'pandas.core.series.Series'>

به مقدار یک ردیف و ستون یک Pandas DataFrame دسترسی پیدا کنید

# Looping rows of a Pandas DataFrame
for index, row in df.iterrows():
    print(f'Index: {index}')
    print(f'Row for column 1: {row["column_1"]}')
Index: 0
Row for column 1: 1
Index: 1
Row for column 1: 2
Index: 2
Row for column 1: 3

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

پایتون داخلی دارد enumerate() تابعی که می تواند برای دسترسی به ایندکس در a استفاده شود for حلقه

مطالب پیشنهادی  Googlebot روی دکمه ها کلیک نمی کند - در عوض چه چیزی باید استفاده شود

# Accessing the index in a for loop
ls = ['a','b','c']
for index, elem in enumerate(ls):
    print(index, elem)
0 a
1 b
2 c

نحوه شکستن چندین حلقه در پایتون

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

  • با استفاده از یکی break دستور در هر حلقه و دستورات شرطی پیچیده،
  • با استفاده از حلقه داخل یک تابع و استفاده از return بیانیه برای شکستن همه حلقه ها.

در اینجا یک مثال است که در آن break دستور همه حلقه ها را نمی شکند.

# Breaking out all loops
for i in range(10):
    for j in ['a','b','c']:
        print(i, j)
        if j == 'b':
            break

اگر تمام حلقه ها را شکسته بود، فقط دو ردیف چاپ می شد. در عوض، قبل از مقدار سوم شکست ('c') از حلقه تو در تو چاپ شد.

0 a
0 b
1 a
1 b
...
9 a
9 b

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

# Breaking out of multiple for loops
def break_out():
    for i in range(10):
        for j in ['a','b','c']:
            print(i, j)
            if j == 'b':
                return
break_out()

نتیجه دو ردیفی است که می خواهیم در این مورد چاپ شوند.

0 a
0 b

Underscore در Python for Loop چیست؟

خط زیر (_) یک قرارداد مورد استفاده در پایتون است for حلقه به این معنی است که یک عنصر توسط بلوک کد داخل حلقه استفاده نخواهد شد.

# understand the underscore in loops
t = [('a',1), ('b',2), ('c',3)]

ls = []
for letter, _ in t:
    ls.append(letter)

ls
['a', 'b', 'c']

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

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

  1. کاهش تعداد خطوط کد
  2. خوانایی بیشتر کد

3 راه برای جلوگیری از استفاده از حلقه های For

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

  1. درک مطالب را فهرست کنید
  2. نقشه + لامبدا
  3. فیلتر + لامبدا

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

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

[element for element in sequence]

درک لیست یک شی لیست را برمی گرداند.

مثال زیر a را تبدیل می کند for حلقه را با استفاده از درک فهرست مختصرتر انجام دهید.

# For loop
ls = []
for i in range(10):
    ls.append(i)

# List Comprehension equivalent
ls2 = [i for i in range(10)]

print(ls) # for
print(ls2) # List comprehension
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

حلقه زدن با Map + Lambda

تابع لامبدا را می توان در داخل استفاده کرد map() تابعی برای نگاشت یک دنباله به دیگری.

مثال زیر a را تبدیل می کند for به نقشه مختصرتر + نتیجه لامبدا حلقه بزنید.

# Doubling a list with a for loop
ls = []

for i in range(10):
    i *= 2
    ls.append(i)

# Doubling a list with Map + Lambda
ls2 = map(lambda x: x * 2, range(10))

print(ls)
print(list(ls2))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

حلقه زدن با فیلتر + لامبدا

تابع لامبدا را می توان در داخل استفاده کرد filter() تابع فیلتر کردن یک دنباله با استفاده از شرطی ها.

مثال زیر a را تبدیل می کند for حلقه به یک فیلتر مختصر تر + نتیجه لامبدا.

# Get even numbers with for loop
even = []
for i in range(10):
    if i % 2 == 0: # Even numbers
        even.append(i)

# Get even numbers Filter + Lambda
even2 = filter(lambda n: n % 2 == 0, range(10))

print(even)
print(list(even2))
[0, 2, 4, 6, 8]
[0, 2, 4, 6, 8]

نتیجه

این پایان این آموزش در مورد حلقه های پایتون است.

سئو PBN | خبر های جدید سئو و هک و سرور