Vòng lặp Loop-de-Loop: Lặp lại hành động
Dạy robot Python cách thực hiện các nhiệm vụ lặp đi lặp lại một cách dễ dàng bằng vòng lặp for và while, cách sử dụng range và cách tránh vòng lặp vô hạn.
Chào mừng em quay trở lại! 🚀 Hôm nay, chúng ta sẽ học cách làm cho chú robot Python thực hiện các công việc nhàm chán lặp đi lặp lại mà không bao giờ phàn nàn hay mệt mỏi.
Hãy tưởng tượng thầy cô yêu cầu em viết “Em hứa sẽ không ăn bánh quy trong lớp” 100 lần lên bảng. Tay em chắc chắn sẽ rất mỏi! Nhưng đối với robot Python, viết câu đó 100 lần chỉ mất chưa đầy một phần nghìn giây.
Để làm được điều này, chúng ta sử dụng Vòng lặp (Loops)!
Vòng Lặp Là Gì? (Đường ray tàu lượn siêu tốc)#
Vòng lặp giống như một đường ray tàu lượn hình tròn. Đoàn tàu sẽ chạy vòng quanh liên tục cho đến khi gặp một điều kiện yêu cầu nó dừng lại.
graph TD
Start([Bắt đầu vòng lặp]) --> Check{Biến đếm < 5?}
Check -- Đúng --> Action["In ra 'Loop-de-loop!' 🎡"]
Action --> Add["Cộng thêm 1 vào biến đếm"]
Add --> Check
Check -- Sai --> End([Thoát vòng lặp])
Nếu chúng ta không chỉ rõ cho vòng lặp khi nào phải dừng lại, nó sẽ chạy mãi mãi. Lỗi này gọi là vòng lặp vô hạn (infinite loop), nó sẽ làm cho chú robot của chúng ta quay cuồng mất kiểm soát!
1. Vòng Lặp Đếm Số (Vòng Lặp for)#
Nếu em biết chính xác mình muốn chú robot lặp lại hành động bao nhiêu lần, em sẽ sử dụng vòng lặp for.
Hãy bảo robot in một thông điệp 5 lần nhé:
for i in range(5):
print("Loop-de-loop! 🎡")pythonCách hoạt động#
range(5)tạo ra một danh sách gồm 5 số:0, 1, 2, 3, 4.ilà một chiếc hộp tạm thời chứa số hiện tại của vòng lặp.- Mỗi lần vòng lặp chạy,
isẽ lấy số tiếp theo trong danh sách, in dòng chữ ra màn hình, rồi quay lại từ đầu. - Đừng quên dấu hai chấm
:và lùi đầu dòng 4 khoảng trắng cho các dòng lệnh bên trong vòng lặp nhé!
2. Vòng Lặp Theo Điều Kiện (Vòng Lặp while)#
Nếu em không biết chính xác mình cần lặp lại bao nhiêu lần, nhưng muốn lặp cho đến khi một điều kiện nào đó thay đổi thì sao? Em sẽ sử dụng vòng lặp while.
Ví dụ, hãy tưởng tượng robot của chúng ta đang chạy bộ, và mỗi bước đi sẽ tiêu tốn 1 điểm năng lượng:
energy = 3
while energy > 0:
print("Robot bước một bước! 🏃")
energy = energy - 1 # Tiêu hao 1 điểm năng lượng
print("Hết năng lượng rồi! Robot đi ngủ. 💤")pythongraph TD
A[Năng lượng = 3] --> B{Năng lượng > 0?}
B -- Đúng --> C["In 'Robot bước một bước!'"]
C --> D[Năng lượng = Năng lượng - 1]
D --> B
B -- Sai --> E["In 'Hết năng lượng rồi!'"]
Robot sẽ kiểm tra xem điều kiện energy > 0 có Đúng không. Vì ban đầu năng lượng là 3, chú ta bước một bước, giảm năng lượng xuống 2 và lặp lại. Robot làm vậy cho đến khi năng lượng trở về 0. Lúc này, câu hỏi trở thành Sai, và robot thoát khỏi vòng lặp!
Tự Mình Trải Nghiệm! 🎮#
Hãy mở trình biên dịch Python và thử các thử thách sau nhé:
- Đếm đến 10: Sử dụng vòng lặp
forvàprint(i)để robot đếm số. (Lưu ý:range(10)bắt đầu từ0. Em có tìm cách nào để robot in ra từ1đến10không? Gợi ý: hãy in rai + 1!) - Chạy trốn núi lửa: Tạo biến
volcano_distance = 5(khoảng cách đến núi lửa). Hãy viết vòng lặpwhilein ra"Đang chạy trốn! 🌋"và giảm khoảng cách đi1sau mỗi vòng lặp cho đến khi khoảng cách bằng0.
Trong bài tiếp theo, chúng ta sẽ học cách đóng gói mã nguồn của mình thành các nút bấm tùy chỉnh gọn gàng gọi là Hàm (Functions) để có thể tái sử dụng bất cứ khi nào. Hẹn gặp lại em!