Làm thế nào để bạn mắc lỗi trong python?

Lỗi là điều không thể tránh khỏi trong cuộc sống của một lập trình viên. Trên thực tế, trong khi viết chương trình, lỗi có thể thực sự hữu ích trong việc xác định lỗi logic và lỗi cú pháp trong mã của bạn

Tuy nhiên, nếu bạn có thể lường trước lỗi trong một nhóm dòng mã cụ thể trước khi thực thi, thì bạn có thể xử lý các lỗi đó và làm cho mã không có lỗi

Tại sao xử lý lỗi lại quan trọng

Xử lý hoặc xử lý các lỗi mà bạn biết giúp mã chạy và thực thi trơn tru mà không bị gián đoạn. Nếu xảy ra lỗi trong bất kỳ dòng mã nào, việc xử lý lỗi sẽ xử lý chúng và sau đó mã sẽ tiếp tục thực thi

Hãy lấy một ví dụ và hiểu tại sao chúng ta cần xử lý lỗi

a = 12
b = 6
result = a/b
print[result]
print["I have reached the end of the line"]
Chương trình không có lỗi

Từ đoạn mã trên, bạn mong đợi điều gì?. Chà, biến ________ 60 in ra ________ 61 và ở dòng tiếp theo, bảng điều khiển in ra

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
2. Đó là những gì chúng tôi đang ngoại trừ

Hãy thay đổi giá trị của

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
0 từ
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
1 thành
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
2 và chạy

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
Chương trình có lỗi

Khi mã này được thực thi, chúng tôi sẽ gặp lỗi như bên dưới

Thông báo lỗi hiển thị khi b được đặt thành 0

Mã không in giá trị

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
0 và nó cũng không in
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
2

Các thông báo lỗi ở trên hiển thị

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
5, có nghĩa là nếu chúng tôi cố gắng chia bất kỳ số nào cho
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
6, chúng tôi sẽ nhận được lỗi này

Vấn đề nằm ở dòng

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
7. Mặc dù đoạn mã không in ra giá trị
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
0, nhưng lẽ ra nó phải in ra
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
2. Nhưng, nó đã không - tại sao?

Chà, bởi vì trình thông dịch Python dừng ở dòng 3 khi

a = int[input[]]
b = int[input[]]
result = a/b
print[result]
print["I have reached the end of the line"]
0 chia cho
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
6. Tại thời điểm này, nó đã báo lỗi trong bảng điều khiển và thoát khỏi mã

Một trong những giải pháp ngây thơ để giải quyết vấn đề này có thể là mã hóa cứng các giá trị. Nếu các giá trị của

a = int[input[]]
b = int[input[]]
result = a/b
print[result]
print["I have reached the end of the line"]
0 và  
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
0 được mã hóa cứng, thì việc chạy mã sẽ giải quyết được lỗi này ở một mức độ nào đó

Nhưng một vấn đề lớn khác có thể phát sinh là khi người dùng muốn đưa ra các giá trị

a = int[input[]]
b = int[input[]]
result = a/b
print[result]
print["I have reached the end of the line"]
0 và
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
0 tại thời điểm thực hiện

a = int[input[]]
b = int[input[]]
result = a/b
print[result]
print["I have reached the end of the line"]
giá trị của a và b được lấy từ người dùng

Tại thời điểm này, có khả năng cao là người dùng sẽ cung cấp

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
6 làm đầu vào cho
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
0. Để xử lý loại lỗi dự kiến ​​này, chúng tôi sẽ sử dụng một số phương pháp xử lý lỗi nhất định để tránh làm gián đoạn luồng thực thi [mặc dù người dùng có thể cung cấp bất kỳ đầu vào không hợp lệ nào như
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
6 làm đầu vào cho
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
0]

Cách sử dụng Thử và loại trừ từ khóa trong Python

Bất kỳ dòng mã nào dễ bị lỗi hơn được giữ trong khối

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
90. Nếu có bất kỳ lỗi nào xảy ra, thì khối
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
91 sẽ xử lý các lỗi đó

Cấu trúc mã trông giống như thế này

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
9Mã Cấu trúc của từ khóa thử/ngoại trừ

Hãy quay lại ví dụ tiêu chuẩn mà chúng ta đã thảo luận. Chúng tôi sẽ xử lý vấn đề

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
5 bằng cách sử dụng khối
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
93

Hãy chèn các dòng mã có khả năng tạo ra lỗi cao. Trong trường hợp của chúng tôi, các dòng

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
94 trong mã của chúng tôi có khả năng cao gây ra lỗi. Vì vậy, chúng tôi đặt bốn dòng này trong khối
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
90

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
6Thử và khối Ngoại trừ cho bài toán chia hết

Bây giờ, khi chúng tôi cung cấp cho

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
0 giá trị của
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
6, sẽ xảy ra lỗi. Vì vậy, khối ________ 191 thực thi và trình thông dịch in ________ 199 và ra khỏi khối ngoại trừ và tiếp tục in
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
2

Mặt khác, khi chúng tôi cung cấp cho

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
0 một giá trị khác 0, thì chúng tôi sẽ in giá trị
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
0. Mã ra khỏi khối thử và tiếp tục in
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
2

Trong cả hai trường hợp, chúng tôi có thể thực thi cho đến dòng mã cuối cùng mà không bị gián đoạn

Ngoài try and except, điều khá quan trọng là phải hiểu các từ khóa

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
64 và
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
65 đi kèm với
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
90 và
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
91

Khối mã

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
64 xuất hiện sau khối mã
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
90 và
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
91 và thực thi khi không có lỗi nào phát sinh từ khối mã
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
90. Tương tự, khối mã
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
65 xuất hiện sau khối mã
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
64 và thực thi dù có xảy ra lỗi hay không – khối này sẽ thực thi chắc chắn

Bây giờ bạn đã hiểu cách thức hoạt động của các khối mã ________ 190, ________ 191, ________ 264 và ________ 265, thứ tự của luồng sẽ là

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
6Cấu trúc mã của Khối từ khóa xử lý lỗi

Khi áp dụng cấu trúc tương tự cho bài toán chia số, chúng ta có được điều này

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
7Mã Cấu trúc bài toán chia số sau Khối từ khóa Xử lý lỗi

Khi

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
0 được gán cho
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
6, thì chúng tôi gặp lỗi. Vì vậy, khối ngoại trừ thực thi và in
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
70 và cuối cùng khối mã thực thi và in
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
2

Luồng thực thi mã khi xảy ra lỗi

Mặt khác, nếu ví dụ

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
0 nhận được
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
73 [hoặc bất kỳ giá trị khác 0 nào], thì chúng ta chia giá trị
a = int[input[]]
b = int[input[]]
result = a/b
print[result]
print["I have reached the end of the line"]
0 cho
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
73 và lưu trữ nó trong biến
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
0. Đoạn mã sau đó in giá trị
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
0.  

Sau đó, khối

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
64 thực thi và in
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
79 và cuối cùng khối mã thực thi và in
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
2

Luồng thực thi mã khi không có lỗi phát sinh

Tóm lược

Bây giờ, tôi hy vọng bạn đã hiểu cách triển khai xử lý lỗi trong Python để phát hiện các lỗi tiềm ẩn với các khối

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
93

Bạn cũng đã học cách sử dụng các khối mã

1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
64 và
1. a = 12
2. b = 0
3. result = a/b
4. print[result]
5. print["I have reached the end of the line"]
65 được liên kết với các phương pháp xử lý lỗi này

lập trình hạnh phúc

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

tái bút Mohammed Ali

SDE. Nhà phân tích an ninh mạng tại Wipro. Cựu thực tập sinh tại Paralaxiom

Nếu bài viết này hữu ích, hãy tweet nó

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Những lỗi thường mắc phải khi sử dụng Python là gì?

Tránh 8 lỗi phổ biến này trong Python .
1️⃣ Không tuân theo các quy tắc. .
2️⃣ Dùng sai cách diễn đạt. .
3️⃣ Sửa đổi và lặp lại danh sách. .
4️⃣ Đụng độ tên. .
5️⃣ Sử dụng biến lớp không chính xác. .
6️⃣ Không xác định chính xác các thông số. .
7️⃣ Lạm dụng “_ _ del _ _”.
8️⃣ Phụ thuộc mô-đun tròn

Lỗi mã hóa phổ biến nhất đối với những người mới bắt đầu sử dụng Python là gì?

Mã Python có lỗi. 10 lỗi phổ biến nhất mà các nhà phát triển Python mắc phải .
Giới thiệu về Python. .
Về bài viết này. .
Sai lầm thường gặp #1. Sử dụng sai biểu thức làm giá trị mặc định cho đối số hàm. .
Sai lầm thường gặp #2. Sử dụng biến lớp không chính xác. .
Sai lầm thường gặp #3. Chỉ định tham số không chính xác cho một khối ngoại lệ

Làm thế nào để mắc lỗi trong Python của Mike Pirnat?

Mô tả. Ngay cả những lập trình viên giỏi nhất cũng mắc lỗi, một số sai lầm đơn giản và ngớ ngẩn, một số khác gây lúng túng và hết sức tốn kém. Trong báo cáo này của O'Reilly, Mike Pirnat mổ xẻ một số sai lầm ngớ ngẩn đáng nhớ nhất của anh ấy, bóc tách chúng từng lớp một để tiết lộ điều gì đã xảy ra .

Có bao nhiêu loại lỗi trong Python?

Trong python có ba loại lỗi; .

Chủ Đề