Vòng lặp for
là một trong những cấu trúc điều khiển quan trọng và phổ biến nhất trong Python. Nó cho phép bạn lặp qua các phần tử của một dãy (sequence) như danh sách, tuple, chuỗi, hoặc thậm chí là các đối tượng có thể lặp khác. Trong bài viết này, chúng ta sẽ tìm hiểu chi tiết về vòng lặp for
trong Python, cách sử dụng nó với các loại dữ liệu khác nhau, và các ví dụ minh họa cụ thể.
Tổng quan về vòng lặp for
Vòng lặp for
trong Python được sử dụng để lặp qua các phần tử của một dãy. Cú pháp cơ bản của vòng lặp for
như sau:
python
for biến_lặp in dãy_phần_tử:
khối_lệnh
Trong đó:
biến_lặp
là biến sẽ nhận giá trị của từng phần tử trong dãy.dãy_phần_tử
là dãy các phần tử mà bạn muốn lặp qua.khối_lệnh
là khối mã sẽ được thực thi cho mỗi phần tử trong dãy.
Vòng lặp for với danh sách
Danh sách (list) là một trong những kiểu dữ liệu phổ biến nhất trong Python. Bạn có thể sử dụng vòng lặp for
để lặp qua các phần tử của một danh sách như sau:
python
fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:
print(fruit)
Kết quả:
apple
banana
cherry
Trong ví dụ này, biến fruit
sẽ lần lượt nhận giá trị của từng phần tử trong danh sách fruits
và in ra giá trị đó.
Vòng lặp for với chuỗi
Chuỗi (string) trong Python cũng là một dãy các ký tự, và bạn có thể sử dụng vòng lặp for
để lặp qua từng ký tự trong chuỗi:
python
word = "Python"
for letter in word:
print(letter)
Kết quả:
P
y
t
h
o
n
Trong ví dụ này, biến letter
sẽ lần lượt nhận giá trị của từng ký tự trong chuỗi word
và in ra ký tự đó.
Vòng lặp for với tuple
Tuple là một kiểu dữ liệu tương tự như danh sách nhưng không thể thay đổi (immutable). Bạn có thể sử dụng vòng lặp for
để lặp qua các phần tử của một tuple:
python
numbers = (1, 2, 3, 4, 5)
for number in numbers:
print(number)
Kết quả:
1
2
3
4
5
Trong ví dụ này, biến number
sẽ lần lượt nhận giá trị của từng phần tử trong tuple numbers
và in ra giá trị đó.
Vòng lặp for với đối tượng range
Hàm range()
trong Python tạo ra một dãy các số nguyên, và bạn có thể sử dụng vòng lặp for
để lặp qua các số này:
python
for i in range(5):
print(i)
Kết quả:
0
1
2
3
4
Trong ví dụ này, hàm range(5)
tạo ra một dãy các số từ 0 đến 4, và biến i
sẽ lần lượt nhận giá trị của từng số trong dãy này và in ra giá trị đó.
Vòng lặp for với chỉ số của dãy
Đôi khi, bạn cần lặp qua các phần tử của một dãy và đồng thời cần biết chỉ số của từng phần tử. Bạn có thể sử dụng hàm enumerate()
để làm điều này:
python
fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
print(f"Index: {index}, Fruit: {fruit}")
Kết quả:
Index: 0, Fruit: apple
Index: 1, Fruit: banana
Index: 2, Fruit: cherry
Trong ví dụ này, hàm enumerate(fruits)
trả về các cặp giá trị (index, fruit), và biến index
sẽ nhận giá trị của chỉ số, còn biến fruit
sẽ nhận giá trị của phần tử tương ứng.
Vòng lặp for với từ điển
Từ điển (dictionary) trong Python là một tập hợp các cặp khóa-giá trị. Bạn có thể sử dụng vòng lặp for
để lặp qua các cặp khóa-giá trị này:
python
person = {'name': 'Alice', 'age': 25, 'city': 'New York'}
for key, value in person.items():
print(f"{key}: {value}")
Kết quả:
name: Alice
age: 25
city: New York
Trong ví dụ này, phương thức items()
của từ điển person
trả về các cặp (key, value), và biến key
sẽ nhận giá trị của khóa, còn biến value
sẽ nhận giá trị của giá trị tương ứng.
Sử dụng câu lệnh else với vòng lặp for
Python cho phép bạn sử dụng câu lệnh else
cùng với vòng lặp for
. Khối lệnh else
sẽ được thực thi khi vòng lặp kết thúc mà không gặp phải câu lệnh break
:
python
for i in range(5):
print(i)
else:
print("Vòng lặp đã kết thúc")
Kết quả:
0
1
2
3
4
Vòng lặp đã kết thúc
Trong ví dụ này, khối lệnh else
sẽ được thực thi sau khi vòng lặp for
kết thúc.
Vòng lặp for lồng nhau
Bạn có thể sử dụng vòng lặp for
lồng nhau để lặp qua các dãy phức tạp hơn. Ví dụ, bạn có thể lặp qua một danh sách các danh sách:
python
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for row in matrix:
for element in row:
print(element, end=' ')
print()
Kết quả:
1 2 3
4 5 6
7 8 9
Trong ví dụ này, vòng lặp for
bên ngoài lặp qua từng hàng của ma trận, và vòng lặp for
bên trong lặp qua từng phần tử trong hàng đó.
Vòng lặp for với list comprehension
List comprehension là một cách viết ngắn gọn và hiệu quả để tạo danh sách mới từ một danh sách hiện có. Bạn có thể sử dụng vòng lặp for
trong list comprehension để tạo danh sách mới:
python
numbers = [1, 2, 3, 4, 5]
squares = [x**2 for x in numbers]
print(squares)
Kết quả:
[1, 4, 9, 16, 25]
Trong ví dụ này, list comprehension [x**2 for x in numbers]
tạo ra một danh sách mới chứa các bình phương của các số trong danh sách numbers
.
Kết luận
Vòng lặp for
là một công cụ mạnh mẽ và linh hoạt trong Python, cho phép bạn lặp qua các phần tử của các dãy khác nhau một cách dễ dàng và hiệu quả. Bằng cách nắm vững cách sử dụng vòng lặp for
với các loại dữ liệu khác nhau như danh sách, chuỗi, tuple, từ điển, và các đối tượng có thể lặp khác, bạn có thể viết mã Python ngắn gọn, dễ đọc và hiệu quả hơn.