VÒNG LẶP while TRONG PYTHON
(Bài toán tính tổng – Dành cho HS THPT)
1️⃣ Cú pháp và ý nghĩa của vòng lặp while
Vòng lặp while được dùng khi ta muốn chương trình
lặp lại một nhóm lệnh chừng nào điều kiện còn đúng.
📌 Cú pháp
while <điều_kiện>:
<các lệnh trong vòng lặp>
- Điều kiện là biểu thức logic (True / False)
- Khi điều kiện còn đúng → vòng lặp tiếp tục
- Khi điều kiện sai → vòng lặp kết thúc
⚠️ Trong vòng lặp
while bắt buộc phải có lệnh làm thay đổi điều kiện,
nếu không chương trình sẽ lặp vô hạn.
2️⃣ Ví dụ: Tính tổng S1
Bài toán:
Tính tổng: S1 = 1 + 2 + 3 + … + 7
Tính tổng: S1 = 1 + 2 + 3 + … + 7
3️⃣ CÁCH 1: Dùng vòng lặp while (cơ bản)
🔹 Ý tưởng
- Dùng biến
ichạy từ 1 đến 7 - Mỗi vòng lặp cộng
ivào tổng - Tăng
ilên 1
S1 = 0
i = 1
while i <= 7:
S1 = S1 + i
i = i + 1
print(S1)
✅ Kết quả: 28
4️⃣ CÁCH 2: Tổng quát hóa (tính tổng từ 1 đến n)
n = int(input("Nhập n: "))
S = 0
i = 1
while i <= n:
S += i
i += 1
print("Tổng từ 1 đến", n, "là:", S)
5️⃣ CÁCH 3: GIẢI THÍCH CHI TIẾT THEO TƯ DUY THUẬT TOÁN
🔹 Giải thích từng bước (dành cho HS học lực yếu)
❓ Tại sao phải khởi tạo S = 0?
- S là biến dùng để lưu tổng
- Ban đầu chưa cộng số nào ⇒ tổng bằng 0
- Đây là giá trị khởi đầu đúng và an toàn
❓ Tại sao phải khởi tạo i = 1?
- i là số đầu tiên của dãy cần cộng
- Tổng bắt đầu từ 1 ⇒ i phải bằng 1
- i là biến điều khiển vòng lặp
❓ Tại sao điều kiện là i ≤ 7?
- Ta chỉ cần cộng các số từ 1 đến 7
- Khi i > 7 thì không được cộng nữa
- Điều kiện này giúp vòng lặp dừng đúng lúc
❓ Tại sao phải có lệnh S = S + i?
- Mỗi vòng lặp ta cộng thêm một số mới
- Lệnh này giúp cộng dồn giá trị
- Không có lệnh này thì tổng không thay đổi
❓ Tại sao phải tăng i?
- Để chuyển sang số tiếp theo
- Giúp điều kiện i ≤ 7 cuối cùng trở thành sai
- Tránh vòng lặp vô hạn
S = 0
i = 1
while i <= 7:
S += i
i += 1
print("Tổng S1 =", S)
6️⃣ BÀI TẬP VỀ NHÀ
📝 Bài 1
Tính tổng:
S2 = 1 + 8 + 15 + … + 99
🔍 Phân tích
- Số đầu: 1
- Mỗi lần tăng: +7
- Số cuối: 99
S2 = 0
i = 1
while i <= 99:
S2 += i
i += 7
print("Tổng S2 =", S2)
📝 Bài 2
Tính tổng:
S3 = 1 + 3 + 5 + … + 17
🔍 Phân tích
- Dãy số lẻ liên tiếp
- Mỗi lần tăng: +2
- Số cuối: 17
S3 = 0
i = 1
while i <= 17:
S3 += i
i += 2
print("Tổng S3 =", S3)
🎯 Học sinh tự chạy chương trình để kiểm tra kết quả
📌 Danh sách bình luận