Vòng lặp trong Python: for, while và cách sử dụng
Hãy tưởng tượng bạn cần in ra 100 dòng "Xin chào" — viết 100 lệnh print? Không! Đó là lý do tồn tại của vòng lặp (loop).
Vòng lặp là gì?
# KHÔNG có vòng lặp
print(1)
print(2)
# ... 98 dòng nữa ...
# CÓ vòng lặp
for i in range(1, 101):
print(i)
Vòng lặp for trong Python
Dùng với range()
# range(stop)
for i in range(5):
print(i)
# Output: 0 1 2 3 4
# range(start, stop, step)
for i in range(0, 11, 2):
print(i, end=" ")
# Output: 0 2 4 6 8 10
Lặp qua List
ngon_ngu = ["Python", "JavaScript", "SQL", "Go"]
for nn in ngon_ngu:
print(f"Tôi biết {nn}")
enumerate() — Lặp kèm chỉ số
mon_hoc = ["Toán", "Lý", "Hóa", "Python"]
for stt, mon in enumerate(mon_hoc, start=1):
print(f"{stt}. {mon}")
# 1. Toán 2. Lý 3. Hóa 4. Python
Vòng lặp while trong Python
dem = 1
while dem <= 5:
print(f"Lần {dem}")
dem += 1 # QUAN TRỌNG: Không có dòng này → vòng lặp vô hạn!
for vs while
| for | while | |
|---|---|---|
| Dùng khi | Biết trước số lần lặp | Không biết trước số lần |
| Ví dụ | Duyệt list, range() | Chờ input người dùng |
| Nguy hiểm | Ít khi vô hạn | Dễ bị vô hạn nếu không cẩn thận |
break, continue, pass
# break — Thoát vòng lặp
for i in range(10):
if i == 5:
break
print(i, end=" ")
# Output: 0 1 2 3 4
# continue — Bỏ qua lần lặp hiện tại
for i in range(10):
if i % 2 == 0:
continue
print(i, end=" ")
# Output: 1 3 5 7 9
List Comprehension
binh_phuong = [i ** 2 for i in range(1, 6)]
# [1, 4, 9, 16, 25]
so_chan = [i for i in range(20) if i % 2 == 0]
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
Bài tập: FizzBuzz
for i in range(1, 101):
if i % 15 == 0:
print("FizzBuzz")
elif i % 3 == 0:
print("Fizz")
elif i % 5 == 0:
print("Buzz")
else:
print(i)
Kết luận
Vòng lặp là công cụ không thể thiếu trong lập trình. Nắm vững for, while, và break/continue sẽ giúp bạn giải quyết hầu hết bài toán lặp trong Python.