Gii Tin 10 Bài 29: Nhn biết lỗi chương trình KNTT
Luyn tp 1 trang 144 SGK Tin 10 KNTT
Các lnh sau có sinh lỗi chương trình không? Nếu có thì mã li là gì?
Li gii
- IndentationError: dòng lệnh in range()không đúng vị trí
- TypeError: Thc hin cng mt xâu và mt s nguyên
Luyn tp 2 trang 144 SGK Tin 10 KNTT
Để tính giá tr trung nh ca mt danh sách s A ngưi lập trình đã dùng lệnh sau
để tính:
gttb = sum(A)/len(A)
Lnh này có th sinh li ngoi l không? Nếu có thì nhng li gì?
Li gii
- Lnh này có th sinh li: ZeroDivisionError nếu danh sách A rng.
Vn dng 1 trang 144 SGK Tin 10 KNTT
Gi s em được yêu cu viết một chương trình nhp s t nhiên n t bàn phím, kết
qu đưa ra là danh sách các ưc s thc s ca n, tính c 1 và không tính n. Hãy viết
chương trình và kiểm tra các kh ng sinh lỗi khi thc hiện chương trình.
Li gii
- Chương trình:
n=int(input("Nhp s t nhiên n"))
A=[]
for i in range(1,n):
if n%i==0:
A.append(i)
print(A)
- Các li có th phát sinh:
ZeroDivisionError
TypeError
NameError
Vn dng 2 trang 144 SGK Tin 10 KNTT
Em hãy viết một chương trình nhỏ để khi chy s sinh mã li NameError.
Li gii
Chương trình:
m=n+2-3
print(m)

Preview text:

Giải Tin 10 Bài 29: Nhận biết lỗi chương trình KNTT
Luyện tập 1 trang 144 SGK Tin 10 KNTT
Các lệnh sau có sinh lỗi chương trình không? Nếu có thì mã lỗi là gì? Lời giải
- IndentationError: dòng lệnh in range()không đúng vị trí
- TypeError: Thực hiện cộng một xâu và một số nguyên
Luyện tập 2 trang 144 SGK Tin 10 KNTT
Để 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 sau để tính: gttb = sum(A)/len(A)
Lệnh này có thể sinh lỗi ngoại lệ không? Nếu có thì những lỗi gì? Lời giải
- Lệnh này có thể sinh lỗi: ZeroDivisionError nếu danh sách A rỗng.
Vận dụng 1 trang 144 SGK Tin 10 KNTT
Giả sử em được yêu cầu viết một chương trình nhập số tự nhiên n từ bàn phím, kết
quả đưa ra là danh sách các ước số thực sự của n, tính cả 1 và không tính n. Hãy viết
chương trình và kiểm tra các khả năng sinh lỗi khi thực hiện chương trình. Lời giải - Chương trình:
n=int(input("Nhập số tự nhiên n")) A=[] for i in range(1,n): if n%i==0: A.append(i) print(A)
- Các lỗi có thể phát sinh: ZeroDivisionError TypeError NameError
Vận dụng 2 trang 144 SGK Tin 10 KNTT
Em hãy viết một chương trình nhỏ để khi chạy sẽ sinh mã lỗi NameError. Lời giải Chương trình: m=n+2-3 print(m)