Slide 1/8
🔄⚡🔁
BÀI 21: CÂU LỆNH LẶP WHILE
"Lặp khi không biết trước số lần lặp"
Tin học 10 | Lập trình cơ bản với Python
Slide 2/8
🎯 A. YÊU CẦU CẦN ĐẠT
- Hiểu và thực hành giải bài toán sử dụng lệnh lặp while
Biết cách sử dụng vòng lặp while khi số lần lặp không biết trước.
- Nắm rõ ba cấu trúc lập trình cơ bản
Hiểu và phân biệt được: Tuần tự, Rẽ nhánh, và Lặp.
📊 Ba Cấu Trúc Lập Trình Cơ Bản
➡️
1. Tuần Tự
Các lệnh được thực hiện lần lượt từ trên xuống dưới.
🔀
2. Rẽ Nhánh
Chương trình chọn đường đi dựa trên điều kiện (if/else).
🔄
3. Lặp
Thực hiện một khối lệnh nhiều lần (for, while).
Slide 3/8
🔄 B.1. LỆNH WHILE TRONG PYTHON
Định nghĩa:
Lệnh while dùng để lặp khi số lần lặp không xác định trước. Vòng lặp tiếp tục hoạt động cho đến khi điều kiện trở thành False.
Lệnh while dùng để lặp khi số lần lặp không xác định trước. Vòng lặp tiếp tục hoạt động cho đến khi điều kiện trở thành False.
📝 Cú Pháp:
while <điều kiện>:
<khối lệnh lặp>
Lưu ý: Sau dấu : các lệnh trong khối lệnh while phải lùi vào một tab hoặc 4 dấu cách.
📝 Ví Dụ Đơn Giản:
x = 1
while x <= 5:
print("Giá trị x:", x)
x += 1
Giải thích:
• Biến x bắt đầu từ 1
• Mỗi lần lặp, x tăng thêm 1
• Vòng lặp dừng khi x > 5
• Kết quả: In ra các số từ 1 đến 5
• Biến x bắt đầu từ 1
• Mỗi lần lặp, x tăng thêm 1
• Vòng lặp dừng khi x > 5
• Kết quả: In ra các số từ 1 đến 5
🔍
Kiểm tra điều kiện
while kiểm tra điều kiện TRƯỚC khi thực thi khối lệnh
⚠️
Tránh vòng lặp vô hạn
Cần chú ý điều kiện lặp để tránh vòng lặp vô hạn
🔄
Thay đổi biến
Phải có câu lệnh thay đổi biến điều kiện trong vòng lặp
Slide 4/8
📊 VÍ DỤ 1: TỔNG BÌNH PHƯƠNG
❓ Câu hỏi: Quan sát đoạn chương trình sau và cho biết S nhận giá trị bao nhiêu?
S = 0
k = 1
while k*k < 100:
S = S + k*k
k = k + 1
print(S)
print(k)
📝 Phân tích:
• Đoạn chương trình tính tổng: 1² + 2² + ... + k²
• Điều kiện: k² < 100
• Vòng lặp dừng khi k² ≥ 100 (tức k = 10)
• Vậy S = 1² + 2² + 3² + ... + 9² = 285
• Đoạn chương trình tính tổng: 1² + 2² + ... + k²
• Điều kiện: k² < 100
• Vòng lặp dừng khi k² ≥ 100 (tức k = 10)
• Vậy S = 1² + 2² + 3² + ... + 9² = 285
🎯 Chi tiết từng bước lặp:
k=1: 1² = 1, S = 0+1 = 1
k=2: 2² = 4, S = 1+4 = 5
k=3: 3² = 9, S = 5+9 = 14
k=4: 4² = 16, S = 14+16 = 30
k=5: 5² = 25, S = 30+25 = 55
k=6: 6² = 36, S = 55+36 = 91
k=7: 7² = 49, S = 91+49 = 140
k=8: 8² = 64, S = 140+64 = 204
k=9: 9² = 81, S = 204+81 = 285
k=10: 10² = 100 ≥ 100 → DỪNG
✅ Kết luận:
S chính là tổng bình phương các số tự nhiên nhỏ hơn 10
S = 285, k = 10
S chính là tổng bình phương các số tự nhiên nhỏ hơn 10
S = 285, k = 10
Slide 5/8
📊 VÍ DỤ 2: IN DÃY SỐ
❓ Câu hỏi: Thực hiện các lệnh sau. Kết quả k sẽ in ra những số nào?
>>> k = 2
>>> while k < 50:
print(k, end=" ")
k = k + 3
📝 Phân tích:
• Vòng lặp while dừng khi k ≥ 50
• Bắt đầu: k = 2
• Sau mỗi bước lặp: k tăng lên 3 đơn vị
• Dãy số: 2, 5, 8, 11, 14, ..., 47
• Vòng lặp while dừng khi k ≥ 50
• Bắt đầu: k = 2
• Sau mỗi bước lặp: k tăng lên 3 đơn vị
• Dãy số: 2, 5, 8, 11, 14, ..., 47
🎮 Mô phỏng tương tác:
Nhấn nút để xem dãy số được tạo ra...
✅ Kết quả:
2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47
💡 Ghi Nhớ:
• while kiểm tra điều kiện TRƯỚC khi thực thi khối lệnh
• Cần chú ý điều kiện lặp để tránh vòng lặp vô hạn
• Phải có câu lệnh thay đổi biến điều kiện trong vòng lặp
• Sử dụng while khi KHÔNG biết trước số lần lặp
• while kiểm tra điều kiện TRƯỚC khi thực thi khối lệnh
• Cần chú ý điều kiện lặp để tránh vòng lặp vô hạn
• Phải có câu lệnh thay đổi biến điều kiện trong vòng lặp
• Sử dụng while khi KHÔNG biết trước số lần lặp
Slide 6/8
🎯 B.2. ỨNG DỤNG CỦA LỆNH WHILE
📊 2.1. Tính Tổng Các Số Chẵn Từ 2 Đến 100
s = 0
n = 2
while n <= 100:
s += n
n += 2
print("Tổng là:", s)
📝 Giải thích:
• Bắt đầu với n = 2 (số chẵn đầu tiên)
• Mỗi lần lặp, cộng n vào tổng s
• Tăng n lên 2 để lấy số chẵn tiếp theo
• Dừng khi n > 100
• Kết quả: s = 2 + 4 + 6 + ... + 100 = 2550
• Bắt đầu với n = 2 (số chẵn đầu tiên)
• Mỗi lần lặp, cộng n vào tổng s
• Tăng n lên 2 để lấy số chẵn tiếp theo
• Dừng khi n > 100
• Kết quả: s = 2 + 4 + 6 + ... + 100 = 2550
🛑 2.2. Sử Dụng Lệnh break
Lệnh break giúp dừng ngay vòng lặp khi đạt một điều kiện nhất định.
x = 1
while True:
print(x, end=" ")
if x == 10:
break
x += 1
📝 Giải thích:
•
• Vòng lặp chạy vô hạn cho đến khi x == 10
• Lệnh
• Kết quả: In ra: 1 2 3 4 5 6 7 8 9 10
•
while True: tạo vòng lặp vô hạn• Vòng lặp chạy vô hạn cho đến khi x == 10
• Lệnh
break dừng vòng lặp ngay lập tức• Kết quả: In ra: 1 2 3 4 5 6 7 8 9 10
⚠️ Lưu ý khi dùng break:
• Dùng break để thoát khỏi vòng lặp khi cần thiết
• Thường dùng với while True để tạo vòng lặp có điều kiện dừng phức tạp
• Đảm bảo luôn có điều kiện để break, tránh vòng lặp vô hạn
• Dùng break để thoát khỏi vòng lặp khi cần thiết
• Thường dùng với while True để tạo vòng lặp có điều kiện dừng phức tạp
• Đảm bảo luôn có điều kiện để break, tránh vòng lặp vô hạn
Slide 7/8
💻 C. THỰC HÀNH
📝 1. In Dãy Số Tự Nhiên Từ 1 Đến 100 Trên Một Hàng Ngang
k = 1
while k <= 100:
print(k, end=" ")
k += 1
📝 Giải thích:
• Bắt đầu từ k = 1
• In k và tăng k thêm 1 mỗi lần lặp
• Sử dụng
• Dừng khi k > 100
• Bắt đầu từ k = 1
• In k và tăng k thêm 1 mỗi lần lặp
• Sử dụng
end=" " để in trên cùng một hàng• Dừng khi k > 100
📝 2. In Chữ Cái Từ A Đến Z
k = 65 # Mã ASCII của 'A'
while k <= 90: # Mã ASCII của 'Z'
print(chr(k), end=" ")
k += 1
📝 Giải thích:
•
• Mã ASCII của 'A' là 65, 'Z' là 90
• Vòng lặp duyệt từ 65 đến 90
• Kết quả: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
•
chr(k) chuyển số ASCII thành ký tự chữ cái• Mã ASCII của 'A' là 65, 'Z' là 90
• Vòng lặp duyệt từ 65 đến 90
• Kết quả: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
🎯 Bảng Mã ASCII Hữu Ích
| Ký tự | Mã ASCII | Ký tự | Mã ASCII |
|---|---|---|---|
| A | 65 | a | 97 |
| Z | 90 | z | 122 |
| 0 | 48 | 9 | 57 |
Slide 8/8
🔄⚡🔁
D. KẾT LUẬN
"Lệnh while là một công cụ mạnh trong Python giúp thực hiện vòng lặp với số lần chưa biết trước."
🔄💪
"Biết cách sử dụng while giúp viết chương trình linh hoạt và hiệu quả hơn!"
🚀✨
🎯 Điểm Khác Biệt: for vs while
| Tiêu chí | Vòng lặp for | Vòng lặp while |
|---|---|---|
| Số lần lặp | Biết trước (xác định) | Không biết trước |
| Điều kiện | Dựa vào range() | Dựa vào biểu thức logic |
| Ứng dụng | Duyệt danh sách, dãy số | Đợi điều kiện, nhập liệu |
💡 Những điều cần nhớ:
✅
Kiểm tra điều kiện trướcwhile kiểm tra trước khi lặp
⚠️
Tránh vòng lặp vô hạnLuôn có điều kiện dừng
🔄
Thay đổi biến điều kiệnCập nhật biến trong vòng lặp
🛑
Sử dụng break khi cầnThoát vòng lặp linh hoạt
Hãy thực hành nhiều bài tập với vòng lặp while! 🎓✨
1 / 8
