Làm Chủ Vòng Lặp For (for loop) trong Python: Từ Khai Niệm Đến Thực Chiến

Chào bạn! Sau khi đã thành thạo các câu lệnh rẽ nhánh (if, elif, else) để cho phép máy tính đưa ra các quyết định đơn lẻ, hôm nay chúng ta sẽ bước sang một khái niệm cốt lõi tiếp theo: Vòng lặp For (for loop).
Vòng lặp là công cụ quyền năng cho phép bạn tự động hóa các tác vụ lặp đi lặp lại một cách hiệu quả và gọn gàng. Hãy tưởng tượng bạn cần kiểm tra điểm của 100 học sinh, thay vì viết 100 câu lệnh print thủ công, vòng lặp for sẽ giúp bạn xử lý toàn bộ chỉ với vài dòng code. Hãy cùng khám phá checklist chi tiết dưới đây để làm chủ công cụ này nhé!
1. Bản Chất và Cú Pháp Vòng Lặp For
Vòng lặp for trong Python được thiết kế đặc biệt để duyệt qua một tập hợp dữ liệu tuần tự, chẳng hạn như một danh sách (list), một chuỗi chữ cái (string), hoặc một phạm vi số (range).
- Biến chạy tự động (Loop Variable): Tên biến đứng ngay sau từ khóa for là do bạn tự đặt (Ví dụ: item, number, char). Giá trị của biến này sẽ tự động được cập nhật để trỏ đến từng phần tử trong tập hợp sau mỗi lần lặp.
- Dấu hai chấm (:): Bắt buộc phải đặt dấu hai chấm ngay sau khi kết thúc câu lệnh khai báo dòng for ... in .... Nó báo hiệu bắt đầu một khối lệnh mới.
- Khoảng thụt lề (Indentation): Tất cả các dòng lệnh bạn muốn lặp đi lặp lại phải được thụt lề vào trong (thường là 4 khoảng trắng hoặc 1 phím Tab) so với hàng chứa for. Phần code này gọi là "thân vòng lặp".
- Số lần lặp xác định: Bản chất của vòng lặp for là nó sẽ tự động dừng lại một cách an toàn khi nó đã duyệt qua hết phần tử cuối cùng của tập hợp dữ liệu. Bạn không cần lo lắng về việc rơi vào vòng lặp vô tận như vòng lặp while nếu sử dụng đúng cách.
2. Hàm Sinh Số range() Cốt Lõi
Hàm range() là người bạn đồng hành không thể thiếu của vòng lặp for, đặc biệt khi bạn muốn lặp một số lần cụ thể hoặc duyệt qua các chỉ số của danh sách. Hãy chắc chắn bạn hiểu rõ 3 cách truyền tham số sau:
- Cú pháp 1 tham số range(stop): Vòng lặp sẽ tự động chạy bắt đầu từ số 0 và dừng lại ngay trước số stop. (Lưu ý: Số stop không được bao gồm trong vòng lặp).
- Cú pháp 2 tham số range(start, stop): Chỉ định con số bắt đầu (start) thay vì mặc định là số 0.
- Cú pháp 3 tham số range(start, stop, step): Nắm vững cách thay đổi bước nhảy (step) — khoảng cách giữa các số sau mỗi vòng. Bạn thậm chí có thể truyền số step âm (negative step) để ép vòng lặp chạy lùi (đếm ngược).
3. Lệnh Điều Hướng: break và continue
Mặc dù vòng lặp for chạy tự động theo tập dữ liệu, đôi khi bạn cần can thiệp vào luồng chạy của nó khi gặp một điều kiện bất ngờ:
- Lệnh break (Thoát hiểm): Khi gặp lệnh này, vòng lặp for sẽ bị lập tức chấm dứt hoàn toàn. Máy tính sẽ bỏ qua các phần tử còn lại phía sau và nhảy xuống chạy các dòng code bên dưới vòng lặp.
- Lệnh continue (Bỏ qua bước): Khi gặp lệnh này, chỉ phần code còn lại của lượt lặp hiện tại bị bỏ qua. Lập trình viên sẽ lập tức nhảy sang lượt lặp tiếp theo với phần tử mới của tập hợp.
4. Thực Hành Ngay Trên VS Code
Lý thuyết đã thông suốt, giờ là lúc thực chiến với 2 bài toán tư duy vòng lặp:
Bài tập 1: Tính tổng các số chẵn (Sum of Even Numbers)
- Tạo một biến tích lũy total_sum và gán giá trị ban đầu bằng số 0.
- Sử dụng vòng lặp for kết hợp với hàm range() để duyệt qua các số nguyên từ 1 đến 20.
- Bên trong vòng lặp, sử dụng câu lệnh điều kiện if kết hợp với toán tử chia lấy phần dư % để tìm ra các số chẵn (chia cho 2 dư 0).
- Nếu số đó là số chẵn, cộng dồn giá trị của số đó vào biến total_sum (total_sum = total_sum + number hoặc viết tắt +=).
- Kết thúc vòng lặp, in giá trị cuối cùng của biến total_sum ra màn hình thành công.
Bài tập 2: Hệ thống quét mã giảm giá (Coupon Code Scanner)
- Giả sử bạn có một danh sách chứa các mã giảm giá hợp lệ (sử dụng kiểu dữ liệu List, ví dụ: ["SALE20", "FREESHIP", "NEWYEAR50"]).
- Tạo một biến chuỗi target_coupon lưu mã mà khách hàng đang muốn tìm để áp dụng.
- Tạo một biến cờ đánh dấu Boolean is_found và gán giá trị ban đầu là False.
- Sử dụng vòng lặp for để duyệt qua từng mã trong danh sách mã giảm giá.
- Tại mỗi lượt lặp, nếu tìm thấy mã trong danh sách trùng khớp với target_coupon:
- Đổi trạng thái của biến is_found thành True.
- Sử dụng lệnh điều hướng phù hợp (break) để dừng vòng lặp ngay lập tức nhằm tối ưu bộ nhớ và tránh quét thừa.
- In kết quả của biến is_found ra màn hình để nghiệm thu xem mã có tồn tại hay không.
Bạn đã thử nghiệm thành công cú pháp range(start, stop, step) âm để đếm ngược chưa? Hãy để lại bình luận nếu bạn gặp bất kỳ điểm thú vị nào khi thực hành nhé!
Bình luận