Đăng nhập

Bài 25: Gỡ lỗi & Debug – Làm bạn với lỗi

Đâ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ỗiGiải thích
SyntaxErrorSai cú pháp
NameErrorDùng biến chưa khai báo
TypeErrorCộng trừ sai kiểu (int + str)
IndexErrorTruy cập phần tử ngoài danh sách
ValueErrorÉp kiểu sai dữ liệu (int("abc"))
ZeroDivisionErrorChia 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:

  1. Đọc kỹ lỗi mà Python báo
  2. Xác định dòng lỗi và lý do
  3. In ra biến nếu cần
  4. 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

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.