Python for - else Loops

Python - For Else Loop

Python hỗ trợ một else block tùy chọn có thể được liên kết với một for loop . Nếu một else block được sử dụng với một for loop , nó chỉ được thực thi khi vòng lặp for kết thúc một cách bình thường.

Vòng lặp for kết thúc bình thường khi nó hoàn thành tất cả các lần lặp mà không gặp phải một break statement , điều này cho phép chúng ta thoát khỏi vòng lặp khi một điều kiện nhất định được đáp ứng.

Flowchart of For Else Loop

Sơ đồ luồng dưới đây minh họa việc sử dụng for-else loop

for-else

Syntax of For Else Loop

Dưới đây là cú pháp của vòng lặp for với khối else tùy chọn −

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

Example of For Else Loop

Ví dụ dưới đây minh họa sự kết hợp của câu lệnh else với câu lệnh for trong Python . Khi số đếm nhỏ hơn 5, số lần lặp sẽ được in ra. Khi nó trở thành 5, câu lệnh in trong khối else sẽ được thực thi, trước khi điều khiển được chuyển đến câu lệnh tiếp theo trong chương trình chính.

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

Khi thực thi, đoạn mã này sẽ tạo ra output

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 Construct without break statement

Như đã đề cập trước đó trong hướng dẫn này, khối else chỉ được thực thi khi vòng lặp kết thúc bình thường, tức là không sử dụng câu lệnh break.

Example

Trong chương trình sau, chúng ta sử dụng vòng lặp for-else mà không có câu lệnh 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")

Khi thực thi, chương trình trên sẽ tạo ra đầu ra sau đây −

T
P
ForLoop-else statement successfully executed

For-Else Construct with break statement

Trong trường hợp kết thúc vòng lặp một cách cưỡng bức (bằng cách sử dụng câu lệnh break), câu lệnh else sẽ bị trình thông dịch bỏ qua và do đó việc thực thi nó sẽ bị bỏ qua.

Example

Chương trình dưới đây cho thấy cách các điều kiện else hoạt động trong trường hợp có câu lệnh 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")

Khi thực thi, chương trình trên sẽ tạo ra đầu ra sau −

T

For-Else with break statement and if conditions

Nếu chúng ta sử dụng cấu trúc for-else với câu lệnh break điều kiện if , vòng for sẽ lặp qua các bộ lặp và trong vòng lặp này, bạn có thể sử dụng một khối if để kiểm tra một điều kiện cụ thể. Nếu vòng lặp hoàn thành mà không gặp phải câu lệnh break , mã trong khối else sẽ được thực thi.

Example

Chương trình sau đây cho thấy cách mà các điều kiện else hoạt động trong trường hợp của câu lệnh break và conditional statements .

# 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()

Khi thực thi, chương trình trên sẽ tạo ra đầu ra sau −

Positive number
Positive number
Positive number
Loop-else Executed