آموزش پایتون - حلقه‌های for-else

پایتون - حلقه For Else

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

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

فلوچارت حلقه For Else

فلوچارت زیر نحوه استفاده از حلقه for-else را نشان می‌دهد −

for-else

سنتکس حلقه For Else

در ادامه، سنتکس حلقه for به همراه بلوک اختیاری else آمده است −

for variable_name in iterable:
 #stmts in the loop
 .
 .
 .
else:
 #stmts in else clause
 .
 .

مثالی از حلقه For Else

مثال زیر ترکیب دستور else را با دستور for در پایتون نشان می‌دهد. تا زمانی که count کمتر از ۵ است، شمارش تکرار چاپ می‌شود. وقتی مقدار آن به ۵ رسید، قبل از اینکه کنترل برنامه به دستور بعدی در برنامه اصلی منتقل شود، دستور print موجود در بلوک else اجرا می‌شود.

for count in range(6):
   print ("Iteration no. {}".format(count))
else:
   print ("for loop over. Now in else block")
print ("End of for loop")

با اجرا، این کد خروجی زیر را تولید خواهد کرد −

Iteration no. 1
Iteration no. 2
Iteration no. 3
Iteration no. 4
Iteration no. 5
for loop over. Now in else block
End of for loop

ساختار For-Else بدون دستور break

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

مثال

در برنامه زیر، از حلقه for-else بدون دستور break استفاده می‌کنیم.

for i in ['T','P']:
   print(i)
else:
   # Loop else statement
   # there is no break statement in for loop, hence else part gets executed directly
   print("ForLoop-else statement successfully executed")

با اجرا، برنامه بالا خروجی زیر را تولید خواهد کرد

T
P
ForLoop-else statement successfully executed

ساختار For-Else همراه با دستور break

در صورت خاتمه اجباری حلقه (با استفاده از دستور break)، دستور else توسط مفسر ندیده گرفته می‌شود و بنابراین از اجرای آن صرف‌نظر می‌گردد.

مثال

برنامه زیر نحوه عملکرد شروط else را در صورت وجود دستور break نشان می‌دهد.

for i in ['T','P']:
   print(i)
   break
else:
   # Loop else statement
   # terminated after 1st iteration due to break statement in for loop
   print("Loop-else statement successfully executed")

با اجرا، برنامه بالا خروجی زیر را تولید خواهد کرد

T

For-Else همراه با دستور break و شروط if

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

مثال

برنامه زیر نحوه عملکرد شروط else را در صورت وجود دستور break و دستورات شرطی نشان می‌دهد.

# creating a function to check whether the list item is a positive
# or a negative number
def positive_or_negative():
   # traversing in a list
   for i in [5,6,7]:
   # checking whether the list element is greater than 0
      if i>=0:
         # printing positive number if it is greater than or equal to 0
         print ("Positive number")
      else:
         # Else printing Negative number and breaking the loop
         print ("Negative number")
         break
   # Else statement of the for loop
   else:
      # Statement inside the else block
      print ("Loop-else Executed")
# Calling the above-created function
positive_or_negative()

با اجرا، برنامه بالا خروجی زیر را تولید خواهد کرد

Positive number
Positive number
Positive number
Loop-else Executed

پیشرفت مطالعه: وضعیت خوانده‌شدن این درس فقط در همین مرورگر ذخیره می‌شود؛ بدون نیاز به حساب کاربری.