Để tính giá trị trung bình của một danh sách số A, người lập trình đã dùng lệnh gttb = sum(A) / len(A). Những mã lỗi ngoại lệ nào có thể xảy ra ?
Đáp án đúng là: D
NameError: chưa khai báo biến A
ZeroDivisionError: danh sách A rỗng.
Sử dụng kiến thức dưới đây:
Mã lỗi ngoại lệ |
Mô tả lỗi |
ZeroDivisionError |
Lỗi này xảy ra khi thực hiện phép chia cho giá trị 0 |
IndexError |
Lỗi xảy ra khi lệnh cố gắng truy cập phần tử của danh sách nhưng chỉ số vượt quá giới hạn |
NameError |
Lỗi xảy ra khi chương trình muốn tìm một tên nhưng không thấy. Ví dụ khi lệnh gọi một hàm nhưng không có hàm đó |
TypeError |
Lỗi kiểu dữ liệu. Một số ví dụ loại lỗi này: - Lệnh truy cập một phần tử của danh sách nhưng chỉ số không là số nguyên - Lệnh tính biểu thức số nhưng lại có một toán hạng không phải là số |
ValueError |
Lỗi liên quan đến giá trị của đối tượng. Lỗi khi thực hiện lệnh chuyển đổi kiểu dữ liệu, đối số của hàm có giá trị mà hàm không hỗ trợ. Ví dụ khi thực hiện lệnh int(“1.55”) sẽ sinh loại lỗi này |
IndentationError |
Lỗi khi các dòng lệnh thụt vào không thẳng hàng hoặc không đúng vị trí |
SyntaxError |
Lỗi cú pháp |
Tham khảo thêm một số tài liệu liên quan:
Lý thuyết Tin học 10 Bài 30 (Kết nối tri thức): Kiểm thử và gỡ lỗi chương trình
Trắc nghiệm Tin học 10 Bài 30 (Kết nối tri thức): Kiểm thử và gỡ lỗi chương trình
Chương trình chạy phát sinh lỗi ngoại lệ IndexError, nên xử lí như thế nào?
Chương trình chạy phát sinh lỗi ngoại lệ TypeError, nên xử lí như thế nào?
Chương trình sau bị lỗi ở dòng lệnh thứ bao nhiêu ?
>>> fruits = ['Banana', 'Apple', 'Lime']
>>> loud_fruits = [fruit.upper() for fruit in fruits]
>>> print(loud_fruits)
>>> list(enumerate(fruits))
Chương trình chạy phát sinh lỗi ngoại lệ NameError, nên xử lí như thế nào?
Phát biểu nào sau đây đúng nhất khi nói về các bộ dữ liệu test khi kiểm thử chương trình?
Hoàn thành phát biểu sau: “Có rất nhiều công cụ và phương pháp khác nhau để kiểm thử chương trình. Các công cụ có mục đích … của chương trình và …, … các lỗi phát sinh trong tương lai”
Chương trình sau có lỗi ở dòng lệnh nào?
n = int(input("Nhập số tự nhiên n: "))
s = ""
for i in range(10):
s = s + i
Chương trình chạy phát sinh lỗi ngoại lệ ZeroDivision, nên xử lí như thế nào?
Chương trình sau nên sửa như thế nào. Chọn phương án đúng nhất.
fruits = ['Banana', 'Apple', 'Lime']
print(fruits[4])
Trong các phát biểu sau, phát biểu nào chưa chính xác về kiểm thử chương trình?
Chương trình sau mắc lỗi gì?
def func(n)
a, b = 0, 1
while a < n:
print(a, end=' ')
a, b = b, a+b
print()
print(func(1000))
Số phát biểu đúng trong các phát biểu sau:
1) Cần chú ý nên có nhiều bộ test khi test các bộ dữ liệu.
2) Việc sinh ngẫu nhiên dữ liệu đầu vào trong miền xác định của chương trình làm tăng khả năng tìm lỗi.
3) Thực tế cho thấy ít khi phát sinh lỗi tại các vùng biên hoặc lân cận biên.
4) Không thể sử dụng các lệnh print() để in ra các biến trung gian.