OPTADS360
AANETWORK
LAVA
YOMEDIA
Banner-Video
IN_IMAGE

Tin học 10 Kết nối tri thức Bài 29: Nhận biết lỗi chương trình


Cùng HOC247 nhận biết một số lỗi trong quá trình thực hiện chương trình Python để biết cách xử lí các lỗi đó. Qua nội dung bài giảng của Bài 29: Nhận biết lỗi chương trình nằm trong chủ đề 5 Giải quyết vấn đề với sự trợ giúp của máy tính dưới đây. Mời các em cùng tham khảo!

ADSENSE/lession_isads=0
QUẢNG CÁO
 
 
 

Tóm tắt lý thuyết

1.1. Nhận biết lỗi chương trình

Xét các trường hợp sau để xác định các trường hợp lỗi chương trình thường gặp

- Trường hợp 1. Người lập trình viết sai cú pháp lệnh, chương trình lập tức dừng lại và thông báo lỗi cú pháp.

Xét ví dụ trên ta thấy khi bị sai cú pháp chương trình dừng và thông báo lỗi Syntax Error (lỗi cú pháp)

- Trường hợp 2. Người dùng nhập dữ liệu sai, chương trình thông báo lỗi nhập dữ liệu không đúng khuôn dạng.

Qua ví dụ ta thấy khi người dùng nhập dữ liệu sai, hàm int() không thể thực hiện được, chương trình dừng lại và báo lỗi. Mã lỗi là ValueError. Đây là lỗi Runtime (lỗi trong khi đang thực hiện) hay còn gọi là lỗi ngoại lệ (Exceptions error)

- Trường hợp 3. Chương trình thông báo lỗi chì số vượt quá giới hạn cho phép.

Array_b1.py

Khi chạy chương trình sẽ báo lỗi

Quan sát ví dụ trên, chương trình phát hiện lỗi chỉ số vượt qua giới hạn tại dòng 3. Chương trình dừng và báo lỗi. Mã lỗi là IndexError. Đây là lỗi Runtime

- Trường hợp 4. Chương trình thực hiện bình thường nhưng kết quả không đúng với yêu cầu của bài toán. Đây là lỗi logic bên trong chương trình.

+ Ta thấy trong ví dụ trên chương trình cho kết quả là 3 mà kết quả đúng là 1 + 2 + 3 = 6. Vì hàm range(3) trả lại vùng giá trị là 0, 1 , 2 chứ không phải là 1, 2, 3.

+ Trong chương trình không còn lỗi Runtime, nhưng kết quả đưa ra sai. Không có mã lỗi nào được trả lại. Đây là lỗi ngữ nghĩa hoặc lỗi logic bên trong chương trình.

- Tổng thể 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.

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ệ. 

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ới mỗi loại lỗi trên, cách xử lý và kiểm soát lỗi sẽ khác nhau.

1.2. Một số lỗi ngoại lệ thường gặp

- Nếu gặp lỗi ngoại lệ, chương trình Python sẽ dừng lại, báo lỗi. 

- Mỗi lỗi ngoại lệ sẽ sinh ra một mã lỗi riêng biệt. Thông qua mã lỗi để biết cách xử lí các lỗi này

- Một số mã lỗi ngoại lệ thường gặp

Mã lỗi ngoại lệ

Mô tả lỗi

ZeroDivisionError

Lỗi này xảy ra khi lệnh 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ụ lỗi loạ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 lỗi loạ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.

- Ví dụ: Một số mã lỗi trong thực tế

+ Mã lỗi IndexError:

+ Mã lỗi ValueError

ADMICRO

Bài tập minh họa

Bài tập 1: Theo em nếu chương trình có lỗi, thì các lỗi này sẽ như thế nào và có thể ở đâu?

Hướng dẫn giải:

Các lỗi có thể là:

- 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 lại và thông báo lỗi Syntax Error

- Lỗi khi không thể thực hiện một lệnh trong chương trình. Chương trình sẽ dừng lại và thông báo một mã lỗi. Lỗi ngoại lệ.

- 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. Lỗi lôgic

Bài tập 2: 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ố")

Hướng dẫn giải:

- Lệnh 1 có thể phát sinh lỗi ValueError khi người dùng nhập dữ liệu chưa chính xác.

- Lệnh 3 có thể phát sinh lỗi NameError khi hàm prime() chưa được xác định nghĩa.

- Kết quả của chương trình có thể sai nếu hàm prime() không được viết chính xác. Khi đó chương trình có lỗi logic bên trong.

ADMICRO

Luyện tập

Qua bài học các em cần nắm được các về:

- Biết và phân loại được một số loại lỗi chương trình.

- Biết được một vài lỗi ngoại lệ thường gặp.

3.1. Trắc nghiệm Bài 29 Tin học 10 KNTT

Các em có thể hệ thống lại nội dung kiến thức đã học được thông qua bài kiểm tra Trắc nghiệm Tin học 10 Kết nối tri thức Chủ đề 5 Bài 29 cực hay có đáp án và lời giải chi tiết. 

Câu 4-10: Mời các em đăng nhập xem tiếp nội dung và thi thử Online để củng cố kiến thức về bài học này nhé!

3.2. Bài tập SGK Bài 29 Tin học 10 KNTT

Các em có thể xem thêm phần hướng dẫn Giải bài tập Tin học 10 Kết nối tri thức Chủ đề 5 Bài 29 để giúp các em nắm vững bài học và các phương pháp giải bài tập.

Khởi động trang 141 SGK Tin học 10 Kết nối tri thức - KNTT

Hoạt động 1 trang 141 SGK Tin học 10 Kết nối tri thức - KNTT

Câu hỏi mục 1 trang 142 SGK Tin học 10 Kết nối tri thức - KNTT

Hoạt động 2 trang 143 SGK Tin học 10 Kết nối tri thức - KNTT

Câu hỏi mục 2 trang 143 SGK Tin học 10 Kết nối tri thức - KNTT

Luyện tập trang 144 SGK Tin học 10 Kết nối tri thức - KNTT

Vận dụng trang 144 SGK Tin học 10 Kết nối tri thức - KNTT

Giải bài tập 29.1 trang 59 SBT Tin học 10 Kết nối tri thức - KNTT

Giải bài tập 29.2 trang 60 SBT Tin học 10 Kết nối tri thức - KNTT

Giải bài tập 29.3 trang 60 SBT Tin học 10 Kết nối tri thức - KNTT

Giải bài tập 29. 4 trang 60 SBT Tin học 10 Kết nối tri thức - KNTT

Giải bài tập 29.5 trang 60 SBT Tin học 10 Kết nối tri thức - KNTT

Giải bài tập 29.6 trang 60 SBT Tin học 10 Kết nối tri thức - KNTT

Giải bài tập 29.7 trang 60 SBT Tin học 10 Kết nối tri thức - KNTT

Giải bài tập 29.8 trang 60 SBT Tin học 10 Kết nối tri thức - KNTT

Giải bài tập 29.9 trang 60 SBT Tin học 10 Kết nối tri thức - KNTT

Giải bài tập 29.10 trang 61 SBT Tin học 10 Kết nối tri thức - KNTT

Giải bài tập 29.11 trang 61 SBT Tin học 10 Kết nối tri thức - KNTT

Hỏi đáp Bài 29 Tin học 10 KNTT

Trong quá trình học tập nếu có thắc mắc hay cần trợ giúp gì thì các em hãy comment ở mục Hỏi đáp, Cộng đồng Tin học HOC247 sẽ hỗ trợ cho các em một cách nhanh chóng!

Chúc các em học tập tốt và luôn đạt thành tích cao trong học tập!

-- Mod Tin Học 10 HỌC247

NONE
OFF