🧭 6.2 Cú pháp vòng for
📖 Giới thiệu
Vòng lặp for là công cụ giúp thực hiện một công việc nhiều lần một cách tự động. Thay vì viết lặp lại code, ta dùng for để Python tự động lặp cho chúng ta.
Mục tiêu bài học:
- Hiểu cú pháp và cách hoạt động của vòng
for - Sử dụng
forvớirange(), list và string - Áp dụng vào các bài toán thực tế
🔧 Cú pháp
1. 🔄 Vòng for với range():
python
# Cú pháp cơ bản
for biến in range(số_lần_lặp):
# Code thực hiện mỗi lần lặp
# Ví dụ
for i in range(5):
print(f"Lần thứ {i + 1}")2. 📝 Vòng for với list:
python
# Duyệt list
danh_sach = ["táo", "cam", "chuối"]
for trai_cay in danh_sach:
print(f"Tôi thích {trai_cay}")3. 🔤 Vòng for với string:
python
# Duyệt từng ký tự
ten = "Python"
for ky_tu in ten:
print(f"Ký tự: {ky_tu}")🔬 Phân tích & Giải thích chi tiết
1. 🔍 Vòng for hoạt động như thế nào?
python
# Ví dụ đơn giản
print("Trước vòng lặp")
for i in range(3):
print(f" Lần lặp {i}: Xin chào!")
print("Sau vòng lặp")
# Kết quả:
# Trước vòng lặp
# Lần lặp 0: Xin chào!
# Lần lặp 1: Xin chào!
# Lần lặp 2: Xin chào!
# Sau vòng lặp2. 🎯 Tên biến trong vòng for
python
# Biến i trong vòng for
for i in range(5):
print(f"i = {i}")
# Có thể dùng tên bất kỳ
for so in range(3):
print(f"Số: {so}")
for lan in range(2):
print(f"Lần {lan + 1}")
# Biến vẫn tồn tại sau vòng lặp
print(f"Giá trị cuối cùng của i: {i}")3. 🔢 Các dạng vòng for với range
python
# Dạng 1: Lặp n lần (0 đến n-1)
for i in range(5):
print(f"Số: {i}") # 0, 1, 2, 3, 4
# Dạng 2: Từ start đến stop-1
for i in range(2, 7):
print(f"Số: {i}") # 2, 3, 4, 5, 6
# Dạng 3: Có bước nhảy
for i in range(0, 10, 2):
print(f"Số chẵn: {i}") # 0, 2, 4, 6, 8
# Dạng 4: Đếm ngược
for i in range(5, 0, -1):
print(f"Đếm ngược: {i}") # 5, 4, 3, 2, 1💻 Ví dụ minh họa
Ví dụ 1: Tính tổng các số
python
# tinh_tong.py
print("➕ TÍNH TỔNG CÁC SỐ")
print("=" * 25)
# Nhập số cuối
n = int(input("Tính tổng từ 1 đến: "))
# Cách 1: Dùng vòng for
tong = 0
for i in range(1, n + 1):
tong += i
print(f"Cộng {i}: tổng = {tong}")
print(f"\n📊 KẾT QUẢ:")
print(f"Tổng từ 1 đến {n} = {tong}")
# Cách 2: Dùng công thức
tong_cong_thuc = n * (n + 1) // 2
print(f"Kiểm tra bằng công thức: {tong_cong_thuc}")
print(f"Kết quả đúng: {tong == tong_cong_thuc}")Ví dụ 2: In bảng nhân
python
# bang_nhan.py
print("✖️ BẢNG NHÂN")
print("=" * 15)
# Nhập số
so = int(input("Nhập số cần tạo bảng nhân: "))
print(f"\n📋 BẢNG NHÂN {so}:")
print("-" * 15)
# In bảng nhân từ 1 đến 10
for i in range(1, 11):
ket_qua = so * i
print(f"{so} x {i:2} = {ket_qua:3}")
# Bonus: In bảng đẹp hơn
print(f"\n🎨 BẢNG NHÂN ĐẸP:")
print("╔════════════════╗")
print(f"║ BẢNG NHÂN {so:2} ║")
print("╠════════════════╣")
for i in range(1, 11):
ket_qua = so * i
print(f"║ {so:2} x {i:2} = {ket_qua:3} ║")
print("╚════════════════╝")Ví dụ 3: Vẽ hình tam giác
python
# ve_tam_giac.py
print("🔺 VẼ TAM GIÁC")
print("=" * 15)
# Nhập chiều cao
chieu_cao = int(input("Chiều cao tam giác: "))
# Tam giác số
print(f"\n🔢 TAM GIÁC SỐ:")
for i in range(1, chieu_cao + 1):
for j in range(1, i + 1):
print(j, end=" ")
print() # Xuống dòng
# Tam giác sao
print(f"\n⭐ TAM GIÁC SAO:")
for i in range(1, chieu_cao + 1):
for j in range(i):
print("*", end=" ")
print()
# Tam giác cân
print(f"\n🔺 TAM GIÁC CÂN:")
for i in range(1, chieu_cao + 1):
# In khoảng trắng
for j in range(chieu_cao - i):
print(" ", end="")
# In sao
for j in range(i):
print("* ", end="")
print()🏋️ Thực hành
Bài tập 1: Đếm số chẵn, lẻ
Nhiệm vụ: Đếm số chẵn và lẻ từ 1 đến n
python
n = int(input("Nhập n: "))
so_chan = 0
so_le = 0
for i in range(1, n + 1):
if i % 2 == 0:
so_chan += 1
else:
so_le += 1
print(f"Từ 1 đến {n}:")
print(f"Số chẵn: {so_chan}")
print(f"Số lẻ: {so_le}")Bài tập 2: Tìm số lớn nhất
Nhiệm vụ: Nhập n số và tìm số lớn nhất
python
n = int(input("Nhập bao nhiêu số: "))
so_lon_nhat = None # Chưa có số nào
for i in range(n):
so = int(input(f"Nhập số thứ {i + 1}: "))
if so_lon_nhat is None or so > so_lon_nhat:
so_lon_nhat = so
print(f"Số lớn nhất: {so_lon_nhat}")Bài tập 3: Tính giai thừa
Nhiệm vụ: Tính n! = 1 × 2 × 3 × ... × n
python
n = int(input("Tính giai thừa của: "))
giai_thua = 1
print(f"Tính {n}!:")
for i in range(1, n + 1):
giai_thua *= i
print(f"{i}! = {giai_thua}")
print(f"\nKết quả: {n}! = {giai_thua}")📋 Tóm tắt
Cú pháp vòng for cơ bản:
python
for biến in iterable:
# Code thực hiện mỗi lần lặpCác dạng thường gặp:
| Dạng | Cú pháp | Mục đích |
|---|---|---|
| Lặp n lần | for i in range(n) | Thực hiện việc gì đó n lần |
| Duyệt list | for item in list | Xử lý từng phần tử |
| Duyệt string | for char in string | Xử lý từng ký tự |
| Có chỉ số | for i in range(len(list)) | Cần biết vị trí phần tử |
Mẹo sử dụng:
python
# ✅ Tên biến có ý nghĩa
for hoc_sinh in danh_sach_lop:
print(hoc_sinh)
# ✅ Dùng enumerate khi cần chỉ số
for i, gia_tri in enumerate(danh_sach):
print(f"{i}: {gia_tri}")
# ✅ Dùng _ cho biến không dùng
for _ in range(5):
print("Hello") # Không quan tâm giá trị iLưu ý quan trọng:
- 🎯 Thụt lề: Code trong vòng for phải thụt lề đồng nhất
- 🔄 Biến lặp: Tự động thay đổi mỗi lần lặp
- 🚪 Thoát sớm: Dùng
breakđể thoát,continueđể bỏ qua - 📏 range(): Không bao gồm số cuối
Chuẩn bị cho bài tiếp theo:
Bài tiếp theo sẽ học về 🔁 Lặp với list, string - duyệt các cấu trúc dữ liệu!
💡 Mẹo: Luôn kiểm tra thụt lề - Python rất nhạy cảm với khoảng trắng!
🧭 Thực hành: Thử viết vòng for đơn giản trước khi làm bài phức tạp!