👤
GAME HOT TIN HỌC 10 TIN HỌC 11 TIN HỌC 12 TRỢ LÝ TÀI NĂNG HỌC TẬP ONLINE TỐT NGHIỆP THPT LIÊN HỆ
DANH MỤC ×

BÀI 29. NHẬN BIẾT LỖI CHƯƠNG TRÌNH

BÀI 29. NHẬN BIẾT LỖI CHƯƠNG TRÌNH

BÀI 29. NHẬN BIẾT LỖI CHƯƠNG TRÌNH

1. NHẬN BIẾT LỖI CHƯƠNG TRÌNH

Có ba loại lỗi chính thường gặp khi lập trình Python:

  • Lỗi cú pháp (Syntax Error): Là lỗi do viết sai quy tắc ngôn ngữ (như sai chính tả, thiếu dấu câu...). Chương trình sẽ dừng ngay lập tức và báo lỗi SyntaxError.
Ví dụ: Lỗi cú pháp (Syntax Error)
  • Lỗi ngoại lệ (Exceptions Error / Runtime Error): Là lỗi xảy ra khi chương trình đang chạy, gặp một lệnh không thể thực hiện được (như chia cho 0, nhập sai kiểu dữ liệu...). Chương trình dừng lại và báo mã lỗi cụ thể.
Ví dụ: Lỗi ngoại lệ
  • Lỗi lôgic (Logical Error): Là lỗi khi chương trình chạy bình thường, không báo lỗi gì cả, nhưng kết quả đưa ra lại sai so với yêu cầu. Đây là lỗi do người lập trình tính toán sai hoặc hiểu sai đề bài.
    • Ví dụ: Muốn tính trung bình cộng của a và b nhưng lại viết công thức là a + b / 2 (thiếu ngoặc) thay vì (a + b) / 2. Kết quả tính ra sẽ sai.
Ví dụ: Lỗi lôgic

2. MỘT SỐ LỖI NGOẠI LỆ THƯỜNG GẶP

  • ZeroDivisionError: Lỗi chia cho số 0.
Ví dụ: Lỗi ZeroDivisionError
  • IndexError: Lỗi truy cập phần tử ngoài phạm vi của danh sách.
Ví dụ: Lỗi IndexError
  • NameError: Lỗi dùng tên biến hoặc tên hàm chưa được định nghĩa (chưa khai báo).
Ví dụ: Lỗi NameError
  • TypeError: Lỗi thực hiện phép toán trên kiểu dữ liệu không phù hợp.
Ví dụ: Lỗi TypeError
  • ValueError: Lỗi giá trị không hợp lệ (thường gặp khi chuyển đổi kiểu dữ liệu).
Ví dụ: Lỗi ValueError
  • IndentationError: Lỗi thụt đầu dòng sai.
Ví dụ: Lỗi IndentationError
  • SyntaxError: Lỗi cú pháp chung.
Ví dụ: Lỗi SyntaxError

3. THỰC HÀNH: NHẬN BIẾT LỖI CHƯƠNG TRÌNH

Nhiệm vụ 1: Nhận biết lỗi chia cho 0 và lỗi kiểu dữ liệu

Đề bài:
Viết chương trình "Máy tính thương số" cực kỳ đơn giản.
Yêu cầu người dùng nhập vào số bị chia a và số chia b. In ra kết quả phép chia a / b.
Sau đó, em hãy cố tình nhập sai quy tắc toán học để xem Python báo lỗi gì.

Hướng dẫn:

  1. Dùng lệnh input() kết hợp ép kiểu int() để nhập hai số nguyên a và b.
  2. Viết lệnh in ra kết quả của a / b.
  3. Chạy thử lần 1: Cố tình nhập số chia b là 0. Quan sát thông báo lỗi ZeroDivisionError (Lỗi chia cho 0).
  4. Chạy thử lần 2: Cố tình nhập chữ cái (ví dụ: gõ chữ "Năm") thay vì nhập số. Quan sát thông báo lỗi ValueError (Lỗi giá trị do hàm int() không thể ép kiểu chữ cái thành số nguyên).
Nhiệm vụ 1: Lỗi chia cho 0 và lỗi kiểu dữ liệu

Chương trình Python hoàn chỉnh:

Chương trình Python hoàn chỉnh nhiệm vụ 1

Nhiệm vụ 2: Nhận biết lỗi vượt quá giới hạn danh sách

Đề bài:
Em có một danh sách chứa tên của 3 bạn học sinh.
Em hãy cố tình viết lệnh in ra tên của bạn học sinh thứ 4 (vốn không hề tồn tại trong danh sách) để quan sát xem chương trình báo lỗi như thế nào.

Hướng dẫn:

  1. Tạo một danh sách to_1 = ["An", "Bình", "Cường"]. Danh sách này có 3 phần tử, nên chỉ số hợp lệ chỉ nằm trong khoảng từ 0 đến 2.
  2. Cố tình viết lệnh print(to_1[3]) để truy cập vào vị trí số 3 (phần tử thứ 4).
  3. Chạy chương trình và quan sát dòng báo lỗi IndexError (Lỗi truy cập phần tử có chỉ số vượt quá giới hạn).
Nhiệm vụ 2: Nhận biết lỗi vượt quá giới hạn danh sách

Chương trình Python hoàn chỉnh:

Chương trình Python hoàn chỉnh nhiệm vụ 2