Bài 19 - Sử dung vòng lặp for trong Python
Bài 19 - Sử dung vòng lặp for trong Python
Mục tiêu: Hiểu cách sử dụng vòng lặp for
để duyệt qua các đối tượng iterable và ứng dụng trong xử lý dữ liệu.
Iterations - phát âm /ˌɪt̬.əˈreɪ.ʃən/ các vòng lặp
iterable - phát âm /ˈɪdərəb(ə)l/ có thể duyệt hay có thể lặp
1. Cơ Bản về Vòng Lặp for
- Mục đích: Duyệt qua từng phần tử của iterable (list, tuple, string, dict,...)
Cú pháp:
for item in iterable: # Khối lệnh xử lý
- Hoạt động:
- Tự động gọi
iter()
để tạo iterator - Dùng
next()
lấy từng phần tử cho đến hết - Tự động xử lý
StopIteration
- Tự động gọi
Ví dụ cơ bản:
fruits = ["táo", "cam", "bưởi"] for fruit in fruits: print(fruit.upper()) # Output: TÁO → CAM → BƯỞI
2. Duyệt Các Kiểu Dữ Liệu Khác Nhau
Kiểu dữ liệu | Ví dụ | Cách duyệt |
---|---|---|
String | "Hello" | Từng ký tự |
List/Tuple | [1, 2, 3] | Từng phần tử |
Dictionary | {"a": 1, "b": 2} | Keys, values hoặc items |
Set | {1, 2, 3} | Từng phần tử |
File | open("data.txt") | Từng dòng |
Ví dụ chi tiết:
# Dictionary scores = {"Alice": 90, "Bob": 85} for name, score in scores.items(): print(f"{name}: {score} điểm") # String for char in "Python": print(char, end='-') # P-y-t-h-o-n- # File with open("data.txt") as file: for line in file: print(line.strip())
3. Công Cụ Hỗ Trợ Vòng Lặp
range()
: Tạo dãy sốfor i in range(5): # 0-4 for i in range(1, 10, 2): # 1,3,5,7,9
enumerate()
: Lấy cả chỉ số và giá trịcolors = ["đỏ", "xanh", "vàng"] for index, color in enumerate(colors): print(f"Vị trí {index}: {color}")
zip()
: Kết hợp nhiều iterablenames = ["An", "Bình"] scores = [9.0, 8.5] for name, score in zip(names, scores): print(f"{name}: {score}")
4. Điều Khiển Vòng Lặp
Lệnh | Tác dụng | Ví dụ |
---|---|---|
break | Thoát vòng lặp ngay lập tức | Dừng khi gặp số âm |
continue | Bỏ qua lần lặp hiện tại | Bỏ qua số chẵn |
else | Chạy khi vòng lặp kết thúc tự nhiên | Tìm số nguyên tố |
Ví dụ ứng dụng:
# Tìm số âm đầu tiên numbers = [3, 7, -2, 9] for n in numbers: if n < 0: print("Tìm thấy số âm!") break else: print("Không có số âm") # Bỏ qua số chẵn for num in range(10): if num % 2 == 0: continue print(num, end=' ') # 1 3 5 7 9
5. Vòng Lặp Lồng Nhau
- Ứng dụng: Xử lý ma trận, kết hợp dữ liệu
Ví dụ: Nhân bảng cửu chương
for i in range(1, 4): # 1-3 for j in range(1, 4): # 1-3 print(f"{i} x {j} = {i*j}", end='\t') print() # Xuống dòng sau mỗi hàng # Output: # 1x1=1 1x2=2 1x3=3 # 2x1=2 2x2=4 2x3=6 # 3x1=3 3x2=6 3x3=9
6. List Comprehension
- Mục đích: Tạo list từ vòng lặp
for
ngắn gọn - Cú pháp:
[expression for item in iterable]
So sánh:
# Cách thông thường squares = [] for x in range(5): squares.append(x**2) # List comprehension squares = [x**2 for x in range(5)] # [0, 1, 4, 9, 16]
Nâng cao:
# Có điều kiện even_squares = [x**2 for x in range(10) if x % 2 == 0] # Lồng nhau matrix = [[1,2], [3,4]] flatten = [num for row in matrix for num in row] # [1,2,3,4]
7. Bài Tập Thực Hành
Câu 1: Đảo ngược từ trong chuỗi
sentence = "Python is awesome" words = sentence.split() reversed_sentence = " ".join(word[::-1] for word in words) print(reversed_sentence) # "nohtyP si emosewa"
Câu 2: Tìm cặp số có tổng bằng mục tiêu
numbers = [2, 7, 11, 15] target = 9 for i in range(len(numbers)): for j in range(i+1, len(numbers)): if numbers[i] + numbers[j] == target: print(f"Vị trí: {i} và {j}")
8. Tài Nguyên Học Tập
Vòng lặp for
là công cụ mạnh mẽ để xử lý dữ liệu trong Python! 🚀
Back to the course
Python cơ bản dành cho người mới bắt đầu