Trong hầu hết các ngôn ngữ lập trình (C / C ++, Java, v.v.), việc sử dụng câu lệnh else đã bị hạn chế với câu lệnh điều kiện if. Nhưng Python lại cho phép chúng ta sử dụng các điều kiện else với vòng lặp for.

Khối lệnh else sau vòng lặp for/while chỉ được thực hiện khi vòng lặp KHÔNG bị chấm dứt bởi câu lệnh break.

Khối else được thực thi trong chương trình Python 3.x bên dưới:

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------

for i in range(1, 4): 
    print(i) 
else:  # Executed because no break in for 
    print("No Break") 

Kết quả:

1
2
3
No Break

Khối else KHÔNG được thực thi trong chương trình Python 3.x bên dưới:

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------

for i in range(1, 4): 
    print(i) 
    break
else: # Not executed as there is a break 
    print("No Break") 

Kết quả:

1

Kiểu else như này chỉ hữu ích nếu có một điều kiện if bên trong vòng lặp mà bằng cách nào đó, nó phụ thuộc vào biến vòng lặp.

Trong ví dụ dưới đây, câu lệnh else sẽ chỉ được thực thi nếu không có phần tử nào của array là chẵn, tức là câu lệnh if sẽ không được thực thi ở bất kỳ lần lặp nào. Do đó, đối với array [1, 9, 8], lệnh if được thực thi trong lần lặp thứ ba của vòng lặp và do đó, lệnh else sau vòng lặp for bị bỏ qua. Với trường hợp array [1, 3, 5], lệnh if không được thực thi trong bất kỳ lần lặp nào và do đó, lệnh else sau vòng lặp for được thực thi.


# Python 3.x program to check if an array consists  
# of even number 
def contains_even_number(l): 
    for ele in l: 
        if ele % 2 == 0: 
            print ("list contains an even number") 
            break
  
    # This else executes only if break is NEVER 
    # reached and loop terminated after all iterations. 
    else:      
        print ("list does not contain an even number") 
  
# Driver code 
print ("For List 1:") 
contains_even_number([1, 9, 8]) 
print (" \nFor List 2:") 
contains_even_number([1, 3, 5]) 

Kết quả:

For List 1:
list contains an even number

For List 2:
list does not contain an even number

Coi ví dụ sau như một bài tập, hãy dự đoán kết quả của chương trình sau đây.

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------

count = 0
while (count < 1):     
    count = count+1
    print(count) 
    break
else: 
    print("No Break") 

Nguồn và Tài liệu tiếng anh tham khảo:

Tài liệu từ cafedev:

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!