Bài 2.3. Vòng lặp for
Nội dung bài học
- Mục đích sử dụng
- Cấu trúc vòng lặp for
- Câu lệnh else trong vòng lặp
- Vòng lặp lồng nhau
- Bài tập thực hành
Mục đích sử dụng
- Vòng lặp for được sử dụng để lặp trên từng phần tử của một tập hợp như list, tuple, dict, set, string, range.
- Vòng lặp for trong python khác với vòng lặp for của các ngôn ngữ lập trình khác.
- Nó hoạt động giống iterator trong các ngôn ngữ lập trình hướng đối tượng.
- Vòng lặp for do đó có số lần lặp giới hạn bởi tập hợp mà nó đang tham chiếu tới.
Cấu trúc vòng lặp for
- Cấu trúc của vòng lặp for:
for variable in sequence:
do something
- Trong đó variable là tên biến, sequence là tên tập hợp và for, in là keyword.
- Vòng lặp for luôn bắt đầu bởi keyword for.
- Nó sẽ kết thúc khi duyệt hết các phần tử trong tập hợp.
- Vòng lặp for thường sử dụng hàm range(start, end, d). Với start, end là giá trị bắt đầu, kết thúc và d là độ dịch chuyển tại mỗi lần lặp. Mặc định độ dịch chuyển là 1 và hàm bắt đầu từ 0 kết thúc ở end-1.
- Điều này có nghĩa là nếu bạn muốn lặp từ 1 đến n, mỗi lần tăng 1 đơn vị thì ta viết:
for n in range(1, n + 1, 1):
# do something here...
- Nếu bạn muốn lặp từ n đến 0, mỗi lần giảm 1 đơn vị thì ta viết:
for n in range(n, -1, -1):
# do something here...

- Ví dụ 1:
# Tính tổng từ k đến n
k = int(input("Enter integer number k: "))
n = int(input("Enter integer number n > k: "))
sum = 0
for x in range(k, n + 1, 1):
sum += x
print(f"Sum from {k} to {n}: {sum}")
Enter integer number k: 1
Enter integer number n > k: 20
Sum from 1 to 20: 210
- Ví dụ 2:
# Hiển thị các kí tự trong một chuỗi input
full_name = input("Enter your full name: ")
print("Spell your name: ")
for x in full_name:
if x.isalpha():
print(f"'{x}'")
Enter your full name: Trần Văn Hưng
Spell your name:
'T'
'r'
'ầ'
'n'
'V'
'ă'
'n'
'H'
'ư'
'n'
'g'
Câu lệnh else trong vòng lặp
- Python cho phép else xuất hiện trong vòng lặp for.
- Nếu else được sử dụng, nó sẽ được thực hiện khi vòng lặp for đã lặp xong danh sách.
- Ví dụ:
# Hiển thị các kí tự trong một chuỗi input
full_name = input("Enter your full name: ")
print("Spell your name: ")
for x in full_name:
if x.isalpha():
print(f"'{x}'")
else:
print("All done!")
Enter your full name: Trần Văn Hưng
Spell your name:
'T'
'r'
'ầ'
'n'
'V'
'ă'
'n'
'H'
'ư'
'n'
'g'
All done!
Vòng lặp lồng nhau
- Một vòng lặp có thể nằm trong vòng lặp khác. Lúc này ta nói vòng lặp lồng nhau.
- Vòng lặp lồng nhau thường được sử dụng để sắp xếp, tìm kiếm, thao tác với hệ tọa độ nhiều chiều, thao tác với dữ liệu dạng bảng như xcell.
- Ví dụ sau vẽ hình chữ nhật rỗng bằng vòng lặp lồng nhau:
# Vẽ hình chữ nhật rỗng bằng dấu *
width = int(input("Enter rectangle's width: "))
height = int(input("Enter rectangle's height: "))
for i in range(1, width + 1, 1):
for j in range(1, height + 1, 1):
if i == 1 or i == width or j == 1 or j == height:
print(" * ", end="")
else:
print(" ", end="")
print()
Enter rectangle's width: 6
Enter rectangle's height: 8
* * * * * * * *
* *
* *
* *
* *
* * * * * * * *
Bài tập thực hành
- Tải đề bài: nhấn vào đây
- Bài giải mẫu: nhấn vào đây
