Vòng lặp là tính năng thiết yếu của mọi ngôn ngữ. Khả năng thực thi task nhiều lần là cơ bản.
Trong Python, lặp đạt được qua for và while loops.
Python for Loop
Cách phổ biến: lặp qua collection.
Cú pháp
for i in collection:
statement
Collection có thể là list, set, range... i nhận giá trị phần tử đang lặp.
my_list = [1, 2, 3, 4, 5]
for i in my_list:
print("Value is:", i)
Kết quả: in 1 đến 5.
for Loop với range()
range() tạo dãy số trong giới hạn. Dùng khi không có list nhưng muốn lặp số lần xác định.
for i in range(5):
print(i)
Kết quả: 0 1 2 3 4 (0 đến 4, không phải 5).
range() mặc định bắt đầu 0, bước 1, kết thúc tại số chỉ định (exclusive).
Muốn start, stop, step khác:
for i in range(10, 30, 5):
print(i)
Kết quả: 10 15 20 25 (bắt đầu 10, bước 5, dừng trước 30).
for Loop với else
else trong for chạy sau khi loop kết thúc (khác với if-else).
for i in range(6):
print(i)
else:
print("Finished looping.")
Kết quả: 0-5 rồi in "Finished looping."
Nested for Loops (Vòng lặp lồng nhau)
for trong for. Inner loop chạy một lần cho mỗi lần outer loop.
numbers = [1, 2, 3]
chars = ["a", "b", "c"]
for i in numbers:
for y in chars:
print(i, y)
Kết quả: 1a 1b 1c 2a 2b 2c 3a 3b 3c
Python While loop
Chạy tập statements miễn là condition true.
i = 1
while i < 5:
print("Hello world")
i = i + 1
Lưu ý: phải tăng i, không thì loop vô tận.
While loop với else
else chạy một lần khi condition không còn true.
i = 1
while i < 5:
print("Hello world")
i = i + 1
else:
print("The execution has ended")
Kết quả: in 4 lần "Hello world" rồi "The execution has ended".
Dùng break trong while Loop
break thoát loop tại thời điểm nhất định.
my_list = ['a', 'b', 'c', 'd', 'e']
for i in my_list:
print(i)
if i == 'c':
print("'c' encountered. Breaking the loop")
break
Kết quả: a b c 'c' encountered. Breaking the loop
Dùng continue trong while Loop
continue bỏ qua iteration hiện tại, nhảy sang iteration tiếp theo.
my_list = ['a', 'b', 'c', 'd', 'e']
for i in my_list:
if i == 'c':
continue
print(i)
Kết quả: a b d e (bỏ qua c).
Tóm tắt
forvàwhiledùng cho iterationfordùng khi biết trước số lần lặp;whiledùng khi không biết trướcforcó thể dùng vớirange()whilecần cơ chế phá vỡ condition tránh infinite loopelseblock chạy luôn với cả for và whilebreakthoát hẳn loop;continuebỏ qua iteration hiện tại