Gỡ Lỗi Trong Python Với print() và pdb

Tạo bởi Hoàng Vũ, chỉnh sửa cuối lúc 2 tháng 2, 2025

Khi lập trình, lỗi (bug) là điều không thể tránh khỏi. Để tìm và sửa lỗi hiệu quả, ta có thể sử dụng cách in giá trị (print()) hoặc dùng trình gỡ lỗi (pdb).

1. Gỡ Lỗi Bằng print()

Phương pháp đơn giản nhất để kiểm tra lỗi là in giá trị của biến hoặc kết quả tính toán bằng print().

Ví dụ 1: Kiểm tra giá trị biến

def tinh_tong(a, b):
    print("Giá trị của a:", a)
    print("Giá trị của b:", b)
    return a + b

result = tinh_tong(5, 10)
print("Tổng:", result)

Kết quả:

Giá trị của a: 5  
Giá trị của b: 10  
Tổng: 15

print() giúp kiểm tra giá trị biến để tìm ra lỗi.

Ví dụ 2: Kiểm tra vòng lặp

for i in range(5):
    print("Giá trị i:", i)

Kết quả:

Giá trị i: 0  
Giá trị i: 1  
Giá trị i: 2  
Giá trị i: 3  
Giá trị i: 4  

In giá trị i giúp kiểm tra logic vòng lặp.

Khi nào nên dùng print()?

  • Khi cần kiểm tra giá trị biến.
  • Khi muốn xem luồng chạy của chương trình.
  • Không hiệu quả với chương trình lớn hoặc lỗi phức tạp.

2. Gỡ Lỗi Bằng pdb (Python Debugger)

Python cung cấp module pdb giúp dừng chương trình tại một điểm và kiểm tra biến, dòng code tiếp theo.

Dừng Chương Trình Với pdb.set_trace()

import pdb

def tinh_tich(a, b):
    pdb.set_trace()  # Dừng tại đây
    return a * b

result = tinh_tich(3, 4)
print("Tích:", result)

Khi chạy chương trình, nó sẽ dừng tại pdb.set_trace() và cho phép nhập lệnh để kiểm tra.

Lệnh pdb Ý nghĩa
n (next) Chạy dòng tiếp theo
c (continue) Tiếp tục chương trình
q (quit) Thoát khỏi trình gỡ lỗi
p variable_name In giá trị của biến

Debug Với python -m pdb

Chạy file Python ở chế độ debug:

python -m pdb my_script.py

Sau đó có thể sử dụng các lệnh pdb để kiểm tra lỗi.

Ví dụ: Debug Bước Từng Bước

import pdb

def chia_so(a, b):
    pdb.set_trace()
    return a / b

print(chia_so(10, 2))
  • Khi chạy, gõ p ap b để kiểm tra giá trị.
  • n để chạy từng dòng code.

3. Tóm Tắt

Phương pháp Khi nào dùng?
print() Khi cần kiểm tra giá trị biến nhanh chóng
pdb.set_trace() Khi cần dừng chương trình và debug từng bước
python -m pdb script.py Khi muốn chạy file Python trong chế độ debug

Sử dụng print() để kiểm tra nhanh, còn pdb giúp gỡ lỗi phức tạp hiệu quả hơn.

Website Logo

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.

Bình luận

Website Logo

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.

Liên hệ công việc qua email dưới đây.

lhvuctu@gmail.com

Chúng Tôi Trên

Bạn đang muốn học về lập trình website?

Bạn cần nâng cao kiến thức chuyên nghiệp hơn để nâng cao cơ hội nghề nghiệp? Liên hệ