menu_book LESSON MODE

Chapter 6 — Vòng Lặp for & while

calendar_today Đăng 27 May 2026
Chapter 6 — Vòng Lặp for & while
school

NOW LEARNING

Chapter 6 — Vòng Lặp for & while

🔁
Chapter 6

Vòng Lặp
for & while

Dạy Python làm đi làm lại một việc mà không cần bạn gõ hàng trăm lần!

😫

Không có vòng lặp — Code rất đau khổ!

Tưởng tượng bạn cần in bảng cửu chương 2 — không có vòng lặp, bạn phải viết:

# ❌ Không có vòng lặp — 10 dòng lặp đi lặp lại!
print(f"2 x 1 = {2*1}")
print(f"2 x 2 = {2*2}")
print(f"2 x 3 = {2*3}")
# ... còn 7 dòng nữa 😭
# ✅ Có vòng lặp — chỉ 2 dòng!
for i in range(1, 11):
    print(f"2 x {i} = {2*i}")
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10  ... đến 2 x 10 = 20
🎵
Vòng lặp = Nút repeat trên máy nghe nhạc Bạn không phải nhấn play 100 lần — chỉ cần bật repeat và chỉ định lặp bao nhiêu lần. Vòng lặp trong Python hoạt động đúng như vậy!
📋

Vòng lặp for — Duyệt qua từng phần tử

Dùng for khi bạn biết trước cần lặp bao nhiêu lần hoặc muốn duyệt qua một danh sách:

1
2
3
4
5
↑ for i in [1, 2, 3, 4, 5] — duyệt lần lượt từng ô ↑
# Duyệt qua danh sách trực tiếp
mon_hoc = ["Toán", "Văn", "Anh", "Lý"]
for mon in mon_hoc:
    print(f"📚 Môn: {mon}")

print("---")

# Duyệt qua chuỗi chữ
for chu in "Python":
    print(chu, end=" ")
📚 Môn: Toán
📚 Môn: Văn
📚 Môn: Anh
📚 Môn: Lý
---
P y t h o n
🔢

Hàm range() — Tạo dãy số tự động

Hàm range() tạo ra một dãy số, dùng kèm với for để lặp chính xác số lần bạn muốn:

range(5)
0 đến 4 (5 số)
0 1 2 3 4
range(1, 6)
1 đến 5
1 2 3 4 5
range(0, 10, 2)
Bước nhảy 2
0 2 4 6 8
# range(start, stop, step)
# Đếm ngược từ 5 về 1
for i in range(5, 0, -1):
    print(f"🚀 Đếm ngược: {i}")
print("💥 Phóng!")

# Tính tổng 1+2+...+100
tong = 0
for i in range(1, 101):
    tong += i
print(f"Tổng 1→100 = {tong}")
🚀 Đếm ngược: 5
🚀 Đếm ngược: 4
🚀 Đếm ngược: 3
🚀 Đếm ngược: 2
🚀 Đếm ngược: 1
💥 Phóng!
Tổng 1→100 = 5050

Vòng lặp while — Lặp cho đến khi điều kiện sai

Dùng while khi bạn không biết trước cần lặp bao nhiêu lần — chỉ biết điều kiện dừng:

# Đếm tiền tiết kiệm mỗi tuần
tien  = 0
tuan  = 0
muc_tieu = 500000

while tien < muc_tieu:
    tien  += 50000     # tiết kiệm 50k/tuần
    tuan  += 1
    print(f"Tuần {tuan}: {tien:,}đ")

print(f"🎉 Đạt mục tiêu sau {tuan} tuần!")
Tuần 1: 50,000đ
Tuần 2: 100,000đ
... (tiếp tục)
Tuần 10: 500,000đ
🎉 Đạt mục tiêu sau 10 tuần!
♾️
Cảnh báo: Vòng lặp vô tận! Nếu điều kiện while luôn luôn đúng, chương trình sẽ chạy mãi mãi không dừng. Luôn đảm bảo có thứ gì đó thay đổi để điều kiện trở thành False! Nhấn Ctrl+C để dừng khẩn cấp.
🛑

break và continue — Điều khiển vòng lặp

Hai từ khóa giúp bạn kiểm soát linh hoạt vòng lặp:

# break — thoát khỏi vòng lặp ngay lập tức
print("=== Tìm số chẵn đầu tiên > 10 ===")
for i in range(11, 20):
    if i % 2 == 0:
        print(f"Tìm thấy: {i}")
        break     # dừng ngay, không cần duyệt thêm

# continue — bỏ qua vòng lặp hiện tại, đi tiếp
print("=== Chỉ in số lẻ từ 1-10 ===")
for i in range(1, 11):
    if i % 2 == 0:
        continue    # bỏ qua số chẵn
    print(i, end=" ")
=== Tìm số chẵn đầu tiên > 10 ===
Tìm thấy: 12
=== Chỉ in số lẻ từ 1-10 ===
1 3 5 7 9
⚖️

Khi nào dùng for? Khi nào dùng while?

🔢 Dùng for khi...
  • Biết trước số lần lặp
  • Duyệt qua danh sách
  • Dùng range() với số cố định
  • Ví dụ: in bảng cửu chương, duyệt danh sách học sinh
⏳ Dùng while khi...
  • Không biết trước số lần lặp
  • Lặp cho đến khi điều kiện thỏa
  • Chờ người dùng nhập đúng
  • Ví dụ: game đoán số nhiều lần, menu chờ thoát
🚀 Dự án nhỏ

Bảng cửu chương + Trò chơi đoán số nâng cấp

# Bảng cửu chương bất kỳ
n = int(input("Nhập bảng cửu chương muốn xem: "))
print(f"\n{'='*25}")
print(f"   BẢNG CỬU CHƯƠNG {n}")
print(f"{'='*25}")
for i in range(1, 11):
    print(f"  {n} x {i:2} = {n*i:3}")

# Game đoán số — nhiều lượt!
bi_mat  = 42
luot    = 0
print("\n🎯 Đoán số bí mật từ 1-100!")

while True:
    doan  = int(input("Nhập số đoán: "))
    luot += 1
    if doan == bi_mat:
        print(f"🎉 Đúng rồi! Bạn đoán {luot} lần.")
        break
    elif doan < bi_mat:
        print("📈 Cao hơn!")
    else:
        print("📉 Thấp hơn!")
🌟
while True + break — Combo phổ biến! while True tạo vòng lặp chạy mãi, rồi dùng break để thoát khi điều kiện thỏa. Đây là pattern rất phổ biến trong game và menu!

🧩 Kiểm tra nhanh!

Bạn đã thành thạo vòng lặp chưa?

1️⃣range(1, 5) tạo ra dãy số nào?
→ 1, 2, 3, 4
2️⃣Từ khóa nào thoát ngay khỏi vòng lặp?
→ break
3️⃣Dùng for hay while khi lặp số lần chưa biết trước?
→ while
4️⃣continue làm gì trong vòng lặp?
→ Bỏ qua lần lặp hiện tại
Tiến độ: Chapter 6/8
🔁

NEXT STEP

Tiếp theo nên học gì

route