Các lệnh sau có sinh ra lỗi chương trình không? Nếu có thì mã lỗi là gì? Hãy nêu cách sửa lỗi đó.
>>>A=[1, 3, 5, 10, 0]
>>>for k in range(1,len(A) + 1):
print(A[k])
Các lệnh sau có sinh ra lỗi chương trình không? Nếu có thì mã lỗi là gì? Hãy nêu cách sửa lỗi đó.
>>>A=[1, 3, 5, 10, 0]
>>>for k in range(1,len(A) + 1):
print(A[k])
Quảng cáo
Trả lời:
Có, chương trình này có sinh ra lỗi khi chạy.
Mã lỗi
Khi vòng lặp chạy đến giá trị cuối cùng của range, chương trình sẽ báo lỗi: IndexError: list index out of range.
Nguyên nhân gây ra lỗi
- Dãy A có 5 phần tử, nên len(A) = 5.
- Hàm range(1, len(A) + 1) sẽ tạo ra các giá trị cho k từ 1 đến 5 (bao gồm: 1, 2, 3, 4, 5)
- Trong Python, chỉ số (index) của danh sách (list) bắt đầu từ 0 đến len(A) - 1 (tức là từ 0 đến 4)
- Khi k = 5, câu lệnh print(A[k]) trở thành print(A[5]), lúc này chỉ số 5 nằm ngoài phạm vi cho phép của danh sách A.
Cách sửa lỗi: bạn có thể sửa lại hàm range() theo các cách sau: Nếu muốn in các phần tử từ vị trí chỉ số 1 đến hết danh sách (bỏ qua phần tử đầu tiên A[0])
Sửa range(1, len(A) + 1) thành range(1, len(A)) để k chỉ chạy từ 1 đến 4.Hot: 1000+ Đề thi cuối kì 2 file word cấu trúc mới 2026 Toán, Văn, Anh... lớp 1-12 (chỉ từ 60k). Tải ngay
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Câu 1
a) Trong đoạn chương trình
>>>def Ham(x,y):
z=15
x=x*3
y=x+y
return x+y+z
Thì các biến x, y, z là các biến cục bộ của chương trình
b) Trong đoạn chương trình
>>>x=5
>>>y=6
Thì x, y là các biến ngoài hàm. Sau khi chạy hàm các biến x, y không thay đổi giá trị.
c) Kết quả 51 không phải là kết quả của lệnh return x+y+z
Lời giải
a) Đ, Các biến x, y, z là các biến cục bộ của chương trình, vì x, y, z được khai báo bên trong thân hàm.
b) Đ, vì x, y được khai báo ngoài hàm.
c) S. Ta có z=15;x=x*3=5*3=15;y=x+y=15+6=21; vì return x+y+z=15+15+21=51.
d) S, khi thực hiện lệnh >>>z thì máy sẽ báo lỗi vì biến z chỉ có tác dụng bên trong hàm Ham, gọi bên ngoài hàm này sẽ bị báo lỗi.
Câu 2
Lời giải
Đáp án đúng là: B
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Câu 4
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Câu 5
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Câu 6
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.