### Giới thiệu về câu lệnh lặp `for` trong Python
Câu lệnh lặp `for` trong Python là một trong những công cụ mạnh mẽ nhất để lặp qua các phần tử trong một đối tượng có thể lặp (iterable) như danh sách, chuỗi, tuple, từ điển, và các đối tượng khác. Câu lệnh `for` giúp bạn tự động lặp qua từng phần tử mà không cần phải xử lý thủ công các chỉ số như trong các ngôn ngữ lập trình khác.
### 1. **Cấu trúc cơ bản của câu lệnh `for`**
Câu lệnh `for` trong Python có cú pháp rất đơn giản:
```python
for variable in iterable:
# Thực thi một đoạn mã cho mỗi phần tử trong iterable
```
* **`variable`**: Biến này đại diện cho mỗi phần tử trong `iterable` trong mỗi lần lặp.
* **`iterable`**: Đây là đối tượng có thể lặp qua (như danh sách, chuỗi, tuple, từ điển, v.v.).
**Ví dụ:**
```python
for i in range(5):
print(f"Giá trị của i là: {i}")
```
Kết quả:
```
Giá trị của i là: 0
Giá trị của i là: 1
Giá trị của i là: 2
Giá trị của i là: 3
Giá trị của i là: 4
```
### 2. **Lặp qua các kiểu dữ liệu khác nhau**
* **Danh sách (List):**
Bạn có thể lặp qua các phần tử trong một danh sách để thực hiện một số thao tác trên từng phần tử.
```python
danh_sach_trai_cay = ["táo", "chuối", "cherry"]
for trai_cay in danh_sach_trai_cay:
print(f"Trái cây hiện tại là: {trai_cay}")
```
Kết quả:
```
Trái cây hiện tại là: táo
Trái cây hiện tại là: chuối
Trái cây hiện tại là: cherry
```
* **Chuỗi (String):**
Câu lệnh `for` cũng có thể được sử dụng để lặp qua từng ký tự trong một chuỗi.
```python
tu_ngu = "Python"
for ky_tu in tu_ngu:
print(f"Chữ cái hiện tại là: {ky_tu}")
```
Kết quả:
```
Chữ cái hiện tại là: P
Chữ cái hiện tại là: y
Chữ cái hiện tại là: t
Chữ cái hiện tại là: h
Chữ cái hiện tại là: o
Chữ cái hiện tại là: n
```
* **Tuple:**
Bạn cũng có thể lặp qua các phần tử trong một tuple.
```python
so_hien_tai = (1, 2, 3, 4)
for so in so_hien_tai:
print(f"Số hiện tại là: {so}")
```
Kết quả:
```
Số hiện tại là: 1
Số hiện tại là: 2
Số hiện tại là: 3
Số hiện tại là: 4
```
* **Từ điển (Dictionary):**
Bạn có thể lặp qua các khóa (keys), giá trị (values), hoặc các cặp khóa-giá trị (key-value) trong một từ điển.
```python
thong_tin = {"tên": "Alice", "tuổi": 25, "thành phố": "Hà Nội"}
for khoa in thong_tin:
print(f"Khóa là: {khoa}")
```
Kết quả:
```
Khóa là: tên
Khóa là: tuổi
Khóa là: thành phố
```
**Lặp qua các cặp khóa-giá trị:**
```python
for khoa, gia_tri in thong_tin.items():
print(f"{khoa}: {gia_tri}")
```
Kết quả:
```
tên: Alice
tuổi: 25
thành phố: Hà Nội
```
### 3. **Lặp qua một dãy số với `range()`**
Hàm `range()` rất hữu ích khi bạn muốn lặp qua một dãy số cụ thể mà không cần phải tạo một danh sách.
* **Cấu trúc**: `range(start, stop, step)`
* **start**: Điểm bắt đầu (mặc định là 0).
* **stop**: Điểm kết thúc (không bao gồm).
* **step**: Bước nhảy giữa các số (mặc định là 1).
```python
for i in range(0, 10, 2): # Bắt đầu từ 0 đến 9 với bước nhảy 2
print(f"Giá trị của i là: {i}")
```
Kết quả:
```
Giá trị của i là: 0
Giới trị của i là: 2
Giới trị của i là: 4
Giới trị của i là: 6
Giới trị của i là: 8
```
### 4. **Sử dụng `break`, `continue`, và `else` trong vòng lặp `for`**
* **`break`**: Thoát khỏi vòng lặp khi điều kiện được thỏa mãn.
```python
for i in range(5):
if i == 3:
print("Thoát khỏi vòng lặp vì i bằng 3")
break
print(f"Giá trị của i là: {i}")
```
Kết quả:
```
Giá trị của i là: 0
Giá trị của i là: 1
Giá trị của i là: 2
Thoát khỏi vòng lặp vì i bằng 3
```
* **`continue`**: Bỏ qua phần còn lại của vòng lặp và tiếp tục với vòng lặp tiếp theo.
```python
for i in range(5):
if i == 3:
print("Bỏ qua i = 3 và tiếp tục vòng lặp")
continue
print(f"Giá trị của i là: {i}")
```
Kết quả:
```
Giá trị của i là: 0
Giá trị của i là: 1
Giá trị của i là: 2
Bỏ qua i = 3 và tiếp tục vòng lặp
Giá trị của i là: 4
```
* **`else`**: Thực thi khi vòng lặp kết thúc mà không gặp `break`.
```python
for i in range(5):
print(f"Giá trị của i là: {i}")
else:
print("Vòng lặp đã hoàn tất mà không gặp lệnh 'break'")
```
Kết quả:
```
Giá trị của i là: 0
Giá trị của i là: 1
Giá trị của i là: 2
Giá trị của i là: 3
Giá trị của i là: 4
Vòng lặp đã hoàn tất mà không gặp lệnh 'break'
```
### Tổng kết
Câu lệnh `for` trong Python là một công cụ mạnh mẽ và linh hoạt để lặp qua các đối tượng có thể lặp (iterable). Bạn có thể sử dụng `for` để lặp qua các phần tử trong danh sách, chuỗi, tuple, từ điển và dãy số, cũng như kết hợp với các câu lệnh điều khiển như `break`, `continue`, và `else` để tạo ra các vòng lặp hiệu quả.