Đây là bài học cuối cùng của Phần 2, và cũng là một trong những kỹ năng quan trọng nhất mà lập trình viên nào cũng phải thành thạo: Gỡ lỗi (debug).
Bạn có thể viết ra những đoạn code rất hay – nhưng nếu không biết cách sửa lỗi khi chúng xảy ra, bạn sẽ không thể đi xa.
Lập trình không phải là tránh lỗi, mà là biết sửa lỗi
Tất cả chúng ta – từ người mới đến chuyên gia – đều gặp lỗi. Sự khác biệt nằm ở chỗ:
✅ Người giỏi biết cách đọc lỗi, suy luận, và sửa nhanh
❌ Người mới thì… xoá hết code hoặc hỏi Google đại khái 😅
Mục tiêu
- Biết đọc lỗi Python (Traceback)
- Biết từng loại lỗi thường gặp
- Biết dùng
print()
và công cụ debug thủ công - Làm quen với try – except để xử lý lỗi
- Biết tư duy từng bước để “truy vết” lỗi
- Làm chủ công cụ debug nếu dùng IDE như VS Code, PyCharm
1. Hiểu Traceback – Đọc lỗi đúng cách
Ví dụ:
a = 10
print(a + b)
Lỗi:
NameError: name 'b' is not defined
Diễn giải:
- Python không tìm thấy biến
b
- Lỗi xảy ra tại dòng
print(a + b)
👉 Khi gặp lỗi: đọc dòng cuối cùng trước, sau đó xem dòng nào gây ra lỗi
2. Các lỗi thường gặp
Loại lỗi | Giải thích |
---|---|
SyntaxError | Sai cú pháp |
NameError | Dùng biến chưa khai báo |
TypeError | Cộng trừ sai kiểu (int + str) |
IndexError | Truy cập phần tử ngoài danh sách |
ValueError | Ép kiểu sai dữ liệu (int("abc") ) |
ZeroDivisionError | Chia cho 0 |
3. Dùng print()
để debug thủ công
Đây là cách debug kinh điển và hiệu quả nhất cho người mới:
def chia(a, b):
print("a =", a)
print("b =", b)
return a / b
print(chia(10, 0))
Bạn in ra các biến trước khi chương trình bị lỗi → giúp biết lý do
4. Dùng try – except
để xử lý lỗi an toàn
try:
a = int(input("Nhập số: "))
b = int(input("Nhập mẫu: "))
print("Kết quả:", a / b)
except ZeroDivisionError:
print("⚠️ Không thể chia cho 0.")
except ValueError:
print("⚠️ Vui lòng nhập số hợp lệ.")
5. Tư duy debug theo quy trình
Khi gặp lỗi, hãy theo 4 bước:
- Đọc kỹ lỗi mà Python báo
- Xác định dòng lỗi và lý do
- In ra biến nếu cần
- Sửa lỗi, chạy lại và kiểm tra logic
6. Debug nâng cao (nếu dùng VS Code / PyCharm)
- Đặt breakpoint (dấu đỏ cạnh dòng code)
- Chạy chương trình ở chế độ debug
- Dừng tại breakpoint, xem giá trị từng biến
- Bước từng dòng (
Step Into
,Step Over
) - Có thể thay đổi giá trị biến khi đang chạy!
Nếu bạn chưa dùng IDE, hãy học VS Code sau – đây là kỹ năng rất quan trọng cho gỡ lỗi phức tạp.
7. Bài tập thực hành
Bài 1: Đoạn code sau đang bị lỗi – hãy đọc lỗi và sửa:
a = "5"
b = 2
print(a * b + 1)
Bài 2: Viết hàm chia(a, b)
có xử lý khi b = 0 và báo lỗi rõ ràng
Bài 3: Debug đoạn sau và giải thích kết quả:
ds = [1, 2, 3]
print(ds[5])
Bài 4: Viết hàm nhap_so()
yêu cầu người dùng nhập số, nếu sai thì nhập lại cho tới khi đúng
Kỹ năng bạn đã hoàn thiện:
- Biết đọc lỗi chính xác và hiểu ý nghĩa
- Biết sử dụng
try – except
để ứng phó lỗi - Tư duy từng bước để sửa lỗi nhanh
- Biết debug thủ công bằng
print()
- Là nền tảng để debug cả ứng dụng lớn, cả GUI, cả API về sau
Hoàn thành Phần 2: Kỹ năng lập trình thực chiến!
Bạn đã nắm vững:
✅ Lập trình hướng đối tượng
✅ Làm việc với file
✅ Tạo module riêng
✅ Làm ứng dụng console và GUI
✅ Gỡ lỗi như một lập trình viên chuyên nghiệp
Bạn có thể:
- Bắt đầu luyện giải thuật
- Làm trò chơi nâng cao
- Bắt đầu học web/backend
- Viết app nhỏ để luyện tập thêm
Thảo luận