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

نوشته از کامل بهرامی
1402/09/27
حلقه ‌ها در پایتون

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

در این مطلب از مجله سبزلرن در کنار تشریح مفهوم حلقه ‌ها در Python، انواع حلقه‌ها، نحوه کار آن‌ها و همچنین مفاهیم مرتبط با آن‌ها را با مثال‌های کاملاً عملی و در عین حال ساده مورد بررسی و بازبینی قرار خواهیم داد. کاربران در پایان مطالعه این مطلب درک نسبتاً خوبی از حلقه ‌ها در پایتون به دست خواهند آورد.

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

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

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

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

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

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

data = [2, 5, 3, 7]
for element in data:
    print(element)
print('finished')

در هر پیمایش، به متغیر «element» مقدار فعلی از لیست اختصاص داده می‌شود و سپس در کنسول چاپ خواهد شد. این فرآیند برای هر مقدار در لیست تا پایان یافتن حلقه ادامه می‌یابد.

توجه به این نکته مهم است که بلوک کد حاوی print(element) دارای ویژگی تورفتگی بوده که این تورفتگی نشان‌دهنده وسعت حلقه است. برعکس، خط print('finished') که فاقد تورفتگی است، در خارج از حلقه قرار دارد و زمانی که حلقه کامل می‌شود فقط یک بار اجرا خواهد شد.

اموزش پایتون

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

  • کلمه کلیدی for
  • متغیری برای نشان دادن آیتم فعلی در دنباله
  • کلمه کلیدی in
  • تابع range‎‎ که نوعی تابع داخلی پایتون است که دنباله‌ای از اعداد را تولید می‌کند.
  • بلوک کدی که عمل پیمایش قرار است روی آن انجام شود.

مثال ساده زیر استفاده از اجزای فوق را نشان می‌دهد:

# Print "Sabzlearn" 5 times
for number in range(5):
    print("Sabzlearn")

حلقه بالا ٥ بار واژه Sabzlearn را چاپ می‌کند.

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

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

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

languages = ['R', 'Python', 'Scala', 'Java', 'Julia']
for index in range(len(languages)):
    print('Current language:', languages[index])

در حلقه فوق، عمل پیمایش با کلمه کلیدی for آغاز می‌شود. در این مثال از متغیرهای index و languages به همراه کلمه کلیدی in و تابع range برای تولید دنباله‌ای از اعداد استفاده شده است. ازآنجایی‌که لیست languages غیر عددی است، از تابع len برای تعیین طول لیست استفاده می‌شود. کدی که باید به طور مکرر اجرا شود عبارت چاپی print('Current language:', languages[index]) است.

در واقع، این حلقه به ما اطلاع می‌دهد که برای هر اندیس در محدوده len(languages) ما قصد دارید زبان برنامه‌نویسی مدنظر را چاپ کنیم. ازآنجایی‌که طول آرایه languages برابر 5 است، این عبارت را می‌توان به صورت زیر نیز بیان کرد:

for index in range(5):
    print('Current language:', languages[index])

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

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

# A list of numbers
numbers = [10, 15, 20, 25, 30]

# Variables to store the sum and count
sum_numbers = 0
count = 0

# Calculate the sum of numbers using a for loop
for number in numbers:
    sum_numbers += number
    count += 1

# Calculate the average
average = sum_numbers / count

# Display the result
print("Numbers:", numbers)
print("Average:", average)

در مثال فوق:

  • numbers لیستی از اعداد است.
  • sum_numbers متغیری است که برای ذخیره مجموع اعداد مقداردهی اولیه شده است.
  • count نوعی متغیر است که به 0 مقداردهی شده تا تعداد عناصر را پیگیری کند.
  • حلقه for هر عدد در لیست را پیمایش می‌کند.
  • در هر پیمایش، عدد فعلی به sum_numbers اضافه می‌شود و count افزایش می‌یابد.
  • پس از حلقه، میانگین با تقسیم مجموع بر شمارش محاسبه می‌شود.
  • سپس نتیجه شامل اعداد اصلی و میانگین محاسبه شده چاپ می‌شود.

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

حلقه For با تابع Range

حلقه For با تابع Range

حلقه For به عنوان یکی از مهم‌ترین حلقه ‌ها در پایتون به اشکال مختلفی به کار گرفته می‌شود. برای پیاده‌سازی حلقه for، به نوعی داده تکرارشونده یا قابل پیمایش نیاز است که این عنصر قابل پیمایش می‌تواند ساختارهای داده مختلف یا حتی برخی از توابع داخلی پایتون باشد. یکی از تابع‌های بسیار مفید range محسوب می‌شود که به سه آرگومان start، stop و step مجهز شده است. در میان این سه آرگومان، آرگومان stop اجباری است و start و step اختیاری بوده که به ترتیب دارای مقادیر پیش‌فرض 0 و 1 هستند. مثال زیر نحوه استفاده از حلقه for با تابع range را نشان می‌دهد:

for index in range(1, 7, 2):
    print(index)

در مثال فوق، با آرگومان‌های start = 1، stop = 7 و step = 2، حلقه هر عدد دوم بین 1 و 7 را به استثنای خود 7 چاپ می‌کند. روش دیگر شامل ترکیب توابع داخلی range و len است که در زیر نشان داده شده است:

data = [2, 5, 3, 7]
for index in range(len(data)):
    print(data[index])

مثال فوق هم به همان نتیجه مثال اول می‌رسد اما این روش مزیتی به همراه دارد. در این مثال به جای پیمایش  مستقیم عناصر لیست، از اندیس‌های تولید شده از range استفاده می‌شود. آرگومان range طول لیست است که در این مثال برابر با عدد ٤ خواهد بود. سپس از این شاخص‌ها (اندیس‌ها) برای دسترسی به عناصر لیست مربوطه، با data[index] استفاده می‌شود.

اموزش پایتون

اگرچه این روش ممکن است پیچیده‌تر به نظر برسد، اما مزیت ارائه هر دو شاخص و عنصر لیست را ارائه می‌دهد. مثال اصلاح شده زیر برای بیان بهتر این هدف بسیار مهم است:

data = [2, 5, 3, 7]
for index in range(len(data)):
    print(index, data[index])

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

حلقه for با enumerate

حلقه for با enumerate

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

data = [2, 5, 3, 7]
for index, element in enumerate(data):
    print(index, element)

خروجی کد بالا، اندیس و عناصر مربوطه را با شروع از 0 نمایش می‌دهد. برای شروع نمایه‌سازی از 1، پارامتر start باید به صورت زیر تنظیم شود:

data = [2, 5, 3, 7]
for index, element in enumerate(data, start=1):
    print(index, element)

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

معکوس حلقه for در پایتون

معکوس حلقه for در پایتون

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

data = [2, 5, 3, 7]
for element in data[::-1]:
    print(element)

این رویکرد، مقادیر start، stop و step را شبیه به تابع range مشخص می‌کند. تنظیم step = - 1 به طور مؤثر لیست را معکوس خواهد کرد.

از طرف دیگر، پایتون تابع داخلی دیگری به نام reverse ارائه می‌کند که به همان نتیجه می‌رسد. در این تابع باید به سادگی لیست را به عنوان آرگومان ارائه داد و  بلوک کد را به اجرا درآورد تا عناصری را که به ترتیب معکوس چاپ می‌شوند مشاهده کرد.

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

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

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

while True:
    print('Looping')

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

در مثال بالا، با تبدیل True به False حلقه اجرا نمی‌شود. در سناریوهای عملی، ارائه عبارتی که به True ارزیابی می‌شود (مثلاً 2 < 3) حلقه را در حال اجرا نگه می‌دارد، در حالی که نتیجه False (مثلاً 3 <3) حلقه را خاتمه می‌دهد. مثال زیر برای بیان این هدف است:

number = 0
while number < 3:
    print('Looping')
    number += 1

در مثال بالا، متغیر number را مقداردهی اولیه می‌کنیم و بررسی خواهیم کرد که آیا کمتر از 3 است یا خیر. اگر این شرط درست باشد، نوعی پیام چاپ می‌کنیم و عدد را با استفاده از عملگر += یک عدد افزایش می‌دهیم که معادل number = number + 1 است.

تعریف حلقه while بر سه جزء ضروری زیر استوار است:

  • کلمه کلیدی while
  • شرایطی که به True یا False ارزیابی می‌شود
  • بلوک کدی که قصد داریم به صورت تکراری اجرا شود

اموزش پایتون

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

حال که اجزای حلقه while را درک کردیم، بیایید به ارائه چند مثال عملی از این حلقه بپردازیم. توجه به این مثال‌ها درک حلقه ‌ها در پایتون را برای ما ساده خواهد کرد. قطعه کد زیر را در نظر بگیرید:

# Take user input
number = 2

# Condition of the while loop
while number < 5 : 
    print("Thank you")
    # Increment the value of the variable "number" by 1
    number = number + 1

در مثال ساده بالا، حلقه while شامل اجزای زیر است: کلمه کلیدی while، نوعی شرط (عدد < 5) که به True یا False ارزیابی می‌شود و یک بلوک کد برای اجرای مکرر دستورات.

print("Thank you")
number = number + 1

با تجزیه کد فوق خواهیم فهمید که به متغیر number مقدار 2 اختصاص داده می‌شود. تا زمانی که مقدار number کمتر از 5 باشد، عبارت Thank you چاپ خواهد شد و مقدار number یک واحد افزایش می‌یابد. این چرخه تا زمانی ادامه می‌یابد که مقدار number برابر با 5 شود و این باعث خواهد شد شرط به False ارزیابی شود. پس از آن، برنامه از حلقه while خارج شده و اجرا را به پایان می‌رساند.

مثال فوق مثالی ساده و ابتدایی است و می‌توان با ترکیب شرط‌های مختلف مانند مثال زیر آن را پیچیده‌تر کرد:

# Take user input
number = 2

# Condition of the while loop
while number < 5 : 

    # Find the mod of 2
    if number % 2 == 0: 
        print("The number " + str(number) + " is even")
    else:
        print("The number " + str(number) + " is odd")

    # Increment `number` by 1
    number = number + 1

در مثال اصلاح‌شده بالا، حلقه while بررسی می‌کند که number کمتر از 5 است یا خیر. در داخل حلقه، از یک شرط if برای تعیین زوج یا فرد بودن number استفاده شده و پیام مربوطه را چاپ می‌کند. مقدار number در هر پیمایش یک واحد افزایش می‌یابد. این حلقه تا زمانی ادامه می‌یابد که number برابر با 5 شود.

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

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

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

 

تا به اینجای مطلبِ آموزش حلقه ‌ها در پایتون، ما حلقه‌های تک سطحی را بررسی کردیم ولی با این حال می‌توان حقله‌های چند سطحی یا تودرتو را هم نوشت که در ادامه مثال‌هایی از این نوع حلقه‌ها برای نوع For و  While آورده شده است.

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

for i in range(3):
    for j in range(3):
        print(i + j)

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

i = 0
while i < 3:
    for j in range(3):
        print(i + j)
    i += 1

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

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

برای درک بهتر مفهوم حلقه‌های تودرتو در پایتون در زیر مثالی از حلقه while تودرتو ارائه شده است:

# Take user input
number = 2

# Condition of the outer while loop
while number < 5 : 
    # Condition of the nested while loop
    while number % 2 == 0:
        print("The number " + str(number) + " is even")

در مثال بالا، یک حلقه while دوم تودرتو در داخل حلقه بیرونی وجود دارد. این حلقه داخلی نوعی بررسی اضافی را برای بررسی اینکه آیا number بر ٢ بخش‌پذیر است یا خیر، معرفی می‌کند و اساساً بررسی خواهد کرد که آیا عدد زوج است یا خیر. در نتیجه، عبارت The number is even را چاپ می‌کند.

همچنین با بررسی دقیق‌تر مثال بالا متوجه عدم وجود عبارت number = number + 1 خواهیم شد که در این مثال بدون افزایش متغیر number، مقدار آن با هر تکرار ثابت می‌ماند و منجر به نوعی حلقه بی‌ نهایت در پایتون می‌شود. این بدان معنی است که وقتی اجرای برنامه وارد حلقه می‌شود، هرگز  از آن خارج نمی‌شود و اعلانی را بی‌نهایت چاپ می‌کند زیرا متغیر number همیشه روی 2 می‌ماند که هم کمتر از 5 است و هم عددی زوج به‌حساب می‌آید. برای این کار باید کنترل کاملی روی حلقه ‌ها در پایتون داشته باشیم که در ادامه بحث به این موضوع خواهیم رسید.

مثال زیر هم نوعی حلقه For تودرتو را نشان می‌دهد:

# Print the below statement 3 times
for number in range(3) : 
    print("-------------------------------------------")
    print("I am outer loop iteration " + str(number))
    # Inner loop
    for another_number in range(5): 
        print("****************************")
        print("I am inner loop iteration " + str(another_number))

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

متعاقباً، کنترل به حلقه داخلی بازمی‌گردد و مقدار nother_number را افزایش می‌دهد و عبارت را در تابع print چاپ می‌کند. این فرآیند تا زمانی ادامه می‌یابد که کنترل کل تابع range را که در این مورد 5 است، طی کند. سپس کنترل به بیرونی‌ترین حلقه برمی‌گردد، مقدار number را به عدد صحیح بعدی افزایش می‌دهد، عبارت را در تابع print چاپ می‌کند، حلقه داخلی را مجدداً مشاهده کرده و مراحل را تا زمانی که تابع range پوشش می‌دهد تکرار می‌کند.

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

تفاوت while و حلقه For در پایتون

حلقه ها در پایتون: تفاوت while و حلقه For در پایتون

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

# Take user input
number = 2

while number < 5 :
    print("Thank you")
    # Increment `number` by 1
    number = number + 1

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

# Print "Thank you" 3 times
for number in range(3):
    print("Thank you")

باید به این نکته توجه داشته که در حلقه for، عدد صحیح داخل تابع range محدوده یا تعداد تکرارهایی را که حلقه اجرا می‌کند، تعیین خواهد کرد. به خاطر داشته باشید که محدوده از 0 شروع می‌شود نه 1.

تفاوت اضافی دیگر بین حلقه‌های for و while سرعت آن‌هاست. به طور کلی، حلقه for سریع‌تر از حلقه while است. به مثال زیر توجه کنید:

import timeit

# A for loop example
def for_loop():
    for number in range(10000):
        sum = 3 + 4

timeit.timeit(for_loop)
import timeit

# A while loop example
def while_loop():
    i = 0
    while i < 10000:
        sum = 3 + 4
        i += 1

timeit.timeit(while_loop)

در مثال بالا، هر دو حلقه 10000 بار تکرار می‌شوند اما حلقه for عموماً سریع‌تر است. در پشت‌صحنه، حلقه for از کامپایلر زیرین C استفاده می‌کند تا یک شی لیست ایجاد کند و به طور مؤثر روی آن پیمایش انجام دهد. در مقابل، حلقه while شامل تماس‌های مکرر با عملگر مقایسه بولی برای شرایط است که منجر به اجرای نسبتاً کندتر می‌شود.

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

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

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

کنترل جریان حلقه ‌ها در پایتون با استفاده از عبارات زیر قابل دستیابی است:

  • دستور break
  • دستور continue
  • و دستور pass

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

با این وجود، سناریوهایی وجود دارد که در آن استفاده از دستورات فوق می‌تواند کد واضح‌تری را در مقایسه با حلقه‌های معمولی «for» و «while» ارائه دهد. در چنین مواردی استفاده منطقی از این کلمات کلیدی توصیه می‌شود. در ادامه این سه دستور همراه با مثال مورد بررسی قرار خواهند گرفت.

اموزش پایتون

دستور break در پایتون

دستور break با دستور شرطی پایتون IF-ELIF-ELSE برای خروج زودهنگام از حلقه زمانی که شرطی مشخص برآورده می‌شود استفاده خواهد شد. در مثال زیر، حلقه برای چاپ اعداد از 0 تا 4 در نظر گرفته شده است اما دستور break اجرا را با برآورده شدن شرط (index == 3) متوقف می‌کند:

for index in range(5):
    if index == 3:
        break
    else:
        print(index)

نکته: قسمت else را می‌توان حذف کرد و حلقه نیز به همین صورت عمل می‌کند.

دستور continue در پایتون

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

for index in range(5):
    if index == 3:
        continue
    else:
        print(index)

عبارت pass در پایتون

عبارت pass به عنوان نوعی دستور do something در نظر گرفته می‌شود و برای آن هیچ اقدامی در نظر گرفته نشده است. این عبارت زمانی مفید خواهد بود که می‌خواهیم منطق برنامه را بعداً پیاده‌سازی کنیم اما می‌خواهیم برنامه به اجرای فعلی ادامه دهد. مثال زیر برای این هدف مهم است:

for index in range(5):
    pass

مثالی از continue و break با حلقه while

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

# Take user input
number = 2

# Condition of the outer while loop
while number < 5 : 

    # Condition of the nested while loop
    while number % 2 == 0: 
        print("The number " + str(number) + " is even")
        break
    number += 1

اجرای کد فوق تضمین می‌کند که برنامه دیگر در یک حلقه بی‌نهایت گیر نمی‌کند.

حال بیایید تشریح کنیم که وقتی با کلمه کلیدی break در کار با حلقه ‌ها در پایتون مواجه می‌شویم چه اتفاقی می‌افتد. هنگامی‌که کنترل برنامه با دستور break مواجه می‌شود، سیگنال خروج از حلقه (حلقه داخلی در این مورد) را به مفسر می‌دهد و خط بعدی کد را اجرا می‌کند. در نتیجه، از حلقه while داخلی خارج می‌شود و اجرای برنامه به حلقه بیرونی می‌رود و تا زمانی که شرط موجود در حلقه while خارجی به درست ارزیابی شود، به اجرای منظم خود ادامه می‌دهد. بسیار مهم است که یک خط کد بعد از کلمه کلیدی break برای تأثیرگذاری آن وجود داشته باشد. حذف خط کد پس از  break آن را بی‌اثر می‌کند.

سناریویی را در نظر بگیرید که در آن کلمه کلیدی  continue را بعد از عبارت break معرفی می‌کنیم، همان‌طور که در زیر نشان داده شده است:

# Take user input
number = 2

while number < 5 :
    while number % 2 == 0:
        print("The number " + str(number) + " is even")
        break
    continue
    number += 1

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

مثالی از continue و break با حلقه For

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

# Print the below statement 3 times
for number in range(3):
    print("-------------------------------------------")
    print("I am outer loop iteration " + str(number))
    for another_number in range(3):
        print("****************************")
        print("I am inner loop iteration " + str(another_number))
        break

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

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

# Print the below statement 3 times
for number in range(3):
    print("-------------------------------------------")
    print("I am outer loop iteration " + str(number))
    continue
    for another_number in range(3):
        print("****************************")
        print("I am inner loop iteration " + str(another_number))
        break

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

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

چگونه می‌توان در پایتون حرفه‌ای‌تر شویم؟

حلقه ‌ها در پایتون یکی از پایه‌ای‌ترین مباحثی است که برنامه نویسان تازه وارد و با تجربه باید با آن دست‌وپنجه نرم کنند. در اصل حلقه ‌ها در پایتون و در سایر زبان‌های برنامه‌نویسی برای انجام کارهای تکراری به وجود آمده‌اند و رسالت غیرقابل‌انکاری در ساده‌سازی فرایند کدنویسی به عهده دارند.

در مطلب فوق از مجله سبزلرن در کنار بررسی حلقه‌های while و For، چندین مثال عملی از نحوه عملکرد این حلقه‌ها ارائه شد و در کنار آن تفاوت این دو حلقه و نحوه کار آن‌ها در سناریوهای مختلف مورد ارزیابی قرار گرفت. همچنین در مطلب فوق مفهوم حلقه‌های تودرتو و کنترل حلقه‌ها با دستورت خاصی مانند؛ continue، break و Pass مورد بررسی واقع شد. به امید اینکه مطلب فوق رضایت کاربران عزیز را جلب کرده باشد.

با خواندن مقالات مختلف احتمالا بتوانید تا حدی به بخش‌های مختلف پایتون مسلط شوید اما قطعا بی‌برنامه بودن و اصولی نبودن مسیر یادگیری باعث می‌شود شما نسبت به زبان برنامه نویسی پایتون دلسرد شوید یا اینکه آن را بصورت کامل یاد نگیرید؛ اما نگران این موضوع نباشید، تیم سبزلرن برای شما آموزش صفر تا صد پایتون را بصورت کاملا رایگان قرار داده تا بتوانید به‌صورت اصولی و حرفه‌ای در زبان پایتون متخصص شوید. اما این همه ماجرا نیست!! این دوره علاوه بر رایگان بودن آن، دارای پشتیبانی انلاین نیز هست و هرکجا به هر مشکلی برخوردید، افراد متخصص در این زبان آماده پاسخگویی به اشکالات و سوالات شما هستند، چی بهتر از این؟ پس فرصت را غنیمت بشمرید و همین الان در این دوره شرکت کنید و بصورت تخصصی یادگیری خودتان را شروع کنید.

اموزش پایتون

نظرات

ثبت نظر جدید

این مطلب هنوز هیچ نظری نداره، تو اولیش رو بنویس :)

آموزش پایتون