Giả sử chương trình có lệnh nhập dữ liệu sau:
n = int(input("Nhập số nguyên n: "))
Khi chúng ta nhập 1.5 thì chương trình có lỗi ngoại lệ không? Đó là lỗi ngoại lệ nào?
A. SyntaxError.
B. ValueError.
C. TypeError
Đáp án đúng là: B
ValueError: Lỗi liên quan đến giá trị đối tượng.
Sử dụng kiến thức dưới đây:
*Cách nhận biết lỗi chương trình
- Có thể phân biệt lỗi chương trình Python làm ba loại:
1. Lỗi khi có lệnh viết sai cú pháp hoặc sai cấu trúc ngôn ngữ Python quy định. Chương trình sẽ lập tức dừng và thông báo lỗi Syntax Error.
Ví dụ 1: Sai cú pháp lệnh
2. Lỗi khi không thể thực hiện một lệnh trong chương trình. Chương trình dừng lại và thông báo một mã lỗi. Lỗi này gọi lỗi ngoại lệ (Exceptions Error), mã lỗi trả lại gọi là mã lỗi ngoại lệ.
Ví dụ 2: Người dùng nhập sai dữ liệu
3. Chương trình chạy không lỗi ngoại lệ, nhưng kết quả đưa ra sai, không chính xác. Đây là lỗi lôgic bên trong chương trình.
Ví dụ 3: Chương trình thông báo lỗi chỉ số vượt quá giới hạn cho phép
Chương trình:
Khi chạy chương trình sẽ báo lỗi:
Ví dụ 4: Chương trình có lỗi lôgic
Chương trình cho kết quả là 3 mà kết quả đúng là 1 + 2 + 3 = 6. Lí do là hàm range(3) trả lại vùng giá trị là 0, 1, 2 chứ không phải 1, 2, 3.
Tham khảo thêm một số tài liệu liên quan:
Lý thuyết Tin học 10 Bài 29 (Kết nối tri thức): Nhận biết lỗi chương trình
Trắc nghiệm Tin học 10 Bài 29 (Kết nối tri thức): Nhận biết lỗi chương trình
Các lệnh sau sẽ phát sinh lỗi ngoại lệ nào?
>>> s = "abc"
>>> s[10]
A. SyntaxError.
B. NameError.
C. TypeError
D. IndexError.
Chương trình sau có lỗi không? Nếu có thì lỗi thuộc loại nào?
A = [1,2,3]
for i in range(4):
print(A[i])
Lỗi ngoại lệ trong Python là lỗi gì?
A. Lỗi khi viết một câu lệnh sai cú pháp của ngôn ngữ lập trình.
B. Lỗi khi truy cập một biến chưa được khai báo.
C. Lỗi khi không thể thực hiện một lệnh nào đó của chương trình
D. Lỗi khi chương trình biên dịch sang tệp exe.
Chương trình sau có lỗi không? Nếu có thì lỗi thuộc loại nào?
n = 10
for i in range(n):
Print(i, end = " ")
Xác định loại lỗi của câu lệnh sau:
>>> A = list(12)
A. Lỗi cú pháp.
B. Lỗi ngoại lệ.
C. Lỗi khác.
D. Không có lỗi.
Lệnh sau có lỗi không? Nếu có thì lỗi thuộc loại nào?
123ab = {1,2,3]
print(123ab)
A. Lỗi cú pháp.
B. Lỗi ngoại lệ.
C. Lỗi khác.
D. Không có lỗi.
Trong lời gọi hàm, nếu các đối số được truyền vào hàm bị thiếu thì lỗi ngoại lệ phát sinh thuộc loại nào dưới đây?
A. Syntax Error.
B. NameError.
C. TypeError
D. Không phát sinh lỗi ngoại lệ.
Đoạn chương trình sau có lỗi không? Nếu có thì lỗi thuộc loại nào?
n = input("Nhập số tự nhiên n: ")
k = int(input("Nhập số lần cần nhân lên: "))
print("Kết quả là:", n*k)
Các lệnh sau khi thực hiện có thể sinh lỗi không? Nếu có thì lỗi có thể là gì?
1. n = int(input("Nhập số nguyên n: "))
2. if prime(n):
3. print(n, "là số nguyên tố")
4. else:
5. print(n,"là hợp số")