Trong bài viết này, chúng ta sẽ học về câu lệnh loop-else trong Python 3.x hoặc các phiên bản trước đó. Trong hướng dẫn này, chúng ta sẽ tập trung vào cách thực thi của vòng lặp for & câu lệnh else.
Trong các ngôn ngữ khác, chức năng else chỉ được cung cấp trong cặp if-else. Nhưng Python cho phép chúng ta triển khai chức năng else với vòng lặp for cũng.
Chức năng else chỉ có sẵn để sử dụng khi vòng lặp kết thúc bình thường. Trong trường hợp kết thúc buộc của vòng lặp, câu lệnh else bị bỏ qua bởi trình thông dịch và do đó việc thực thi nó bị bỏ qua.
Bây giờ hãy nhìn nhanh qua một số minh họa để hiểu câu lệnh loop-else tốt hơn.
MINH HỌA 1: Cấu trúc For-Else với kết thúc bình thường
Ví dụ
for i in ['T', 'P']:
print(i)
else: # Câu lệnh loop-else
print("Câu lệnh loop-else thực thi thành công")
Kết quả
T P Câu lệnh loop-else thực thi thành công
MINH HỌA 2: Cấu trúc For-Else với kết thúc buộc
Ví dụ
for i in ['T', 'P']:
print(i)
break
else: # Câu lệnh loop-else
print("Câu lệnh loop-else thực thi thành công")
Kết quả
T
Giải thích − Câu lệnh loop-else được thực thi trong MINH HỌA 1 vì vòng lặp for kết thúc bình thường sau khi hoàn thành lặp qua list['T','P']. Nhưng trong MINH HỌA 2, câu lệnh loop-else không được thực thi vì vòng lặp bị kết thúc buộc bằng câu lệnh nhảy như break.
Các MINH HỌA này chỉ ra rõ ràng câu lệnh loop-else không được thực thi khi vòng lặp bị kết thúc buộc.
Bây giờ hãy xem một minh họa mà trong một số điều kiện câu lệnh loop-else được thực thi và trong một số không.
Ví dụ
def pos_neg_test():
for i in [5, 6, 7]:
if i >= 0:
print("Số dương")
else:
print("Số âm")
break
else:
print("Loop-else Executed")
# Hàm main
pos_neg_test()
Kết quả
Số dương Số dương Số dương Loop-else Executed
Giải thích − Ở đây khối else trong cấu trúc if-else không được thực thi vì điều kiện if đánh giá là true, câu lệnh Loop-Else được thực thi.
Nếu chúng ta thay thế list trong vòng lặp for [5, 6, 7] bằng [7, -1, 3] thì đầu ra thay đổi thành:
Kết quả
Số dương Số âm
Kết luận
Trong bài viết này, chúng ta đã tìm hiểu về triển khai câu lệnh loop-else và nhiều cách khác nhau mà nó có thể được triển khai.