Các Loại Lỗi Phổ Biến trong Python
Trong Python, khi chạy chương trình, chúng ta có thể gặp nhiều loại lỗi khác nhau. Việc hiểu rõ từng loại lỗi sẽ giúp chúng ta dễ dàng tìm ra nguyên nhân và sửa chữa chúng một cách nhanh chóng. Dưới đây là ba loại lỗi phổ biến:

1. SyntaxError
- Lỗi cú pháp
Lỗi SyntaxError
xảy ra khi mã nguồn của bạn không tuân theo cú pháp hợp lệ của Python.
Ví dụ 1: Quên dấu hai chấm (:) ở câu lệnh if
x = 10
if x > 5 # Thiếu dấu `:`
print("X lớn hơn 5")
Kết quả:
SyntaxError: expected ':'
Ví dụ 2: Sai quy tắc đặt tên biến
3x = 5 # Không thể đặt tên biến bắt đầu bằng số
Kết quả:
SyntaxError: invalid syntax
Cách khắc phục:
- Kiểm tra lỗi cú pháp, dấu câu, dấu ngoặc đơn, dấu hai chấm…
- Đọc kỹ thông báo lỗi để xác định dòng nào bị sai.
2. TypeError
- Lỗi kiểu dữ liệu
Lỗi TypeError
xảy ra khi bạn cố gắng thực hiện một phép toán hoặc thao tác không hợp lệ trên một kiểu dữ liệu.
Ví dụ 1: Cộng số với chuỗi
x = 5
y = "10"
print(x + y) # Không thể cộng int với str
Kết quả:
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Cách khắc phục:
Chuyển đổi kiểu dữ liệu trước khi thực hiện phép toán:
print(x + int(y)) # Chuyển y thành số nguyên trước khi cộng
Ví dụ 2: Gọi hàm trên kiểu dữ liệu không hợp lệ
x = 5
x.append(10) # Số nguyên không có phương thức append()
Kết quả:
TypeError: 'int' object has no attribute 'append'
Cách khắc phục:
Chỉ sử dụng phương thức phù hợp với kiểu dữ liệu:
x = [5] # Đổi thành danh sách
x.append(10)
print(x) # Kết quả: [5, 10]
3. ValueError
- Lỗi giá trị
Lỗi ValueError
xảy ra khi một hàm nhận một đối số đúng kiểu dữ liệu nhưng không hợp lệ.
Ví dụ 1: Chuyển đổi chuỗi không hợp lệ thành số
num = int("hello") # Không thể chuyển "hello" thành số nguyên
Kết quả:
ValueError: invalid literal for int() with base 10: 'hello'
Cách khắc phục:
Kiểm tra giá trị trước khi chuyển đổi:
s = "123"
if s.isdigit():
num = int(s)
print(num) # 123
else:
print("Không thể chuyển đổi thành số!")
Ví dụ 2: Giải nén số lượng giá trị sai
a, b = [1, 2, 3] # Danh sách có 3 phần tử, nhưng chỉ có 2 biến
Kết quả:
ValueError: too many values to unpack (expected 2)
Cách khắc phục:
Sử dụng danh sách đủ số phần tử hoặc unpacking chính xác:
a, b, c = [1, 2, 3]
print(a, b, c) # 1 2 3
Tóm Tắt
Lỗi | Nguyên nhân | Cách khắc phục |
---|---|---|
SyntaxError |
Cú pháp sai (quên dấu hai chấm, dấu ngoặc, sai cách đặt tên biến, v.v.) | Kiểm tra cú pháp, đọc kỹ thông báo lỗi. |
TypeError |
Thực hiện phép toán không hợp lệ trên kiểu dữ liệu (cộng số với chuỗi, gọi phương thức không có trên kiểu dữ liệu) | Kiểm tra kiểu dữ liệu trước khi thực hiện thao tác. |
ValueError |
Giá trị đúng kiểu nhưng không hợp lệ (chuyển đổi sai, unpacking sai) | Kiểm tra giá trị trước khi sử dụng. |
Việc hiểu rõ các lỗi trên sẽ giúp bạn debug nhanh hơn và viết mã Python hiệu quả hơn.

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.
Xem thêm

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