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.
Sơ đồ luồng dưới đây minh họa việc sử dụng 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 . .
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
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.
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
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.
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
Nếu chúng ta sử dụng cấu trúc for-else với câu lệnh break và đ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.
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