Làm thế nào để bạn bỏ qua một khối thử trong python?

Sử dụng khối try/except để bỏ qua ngoại lệ KeyError trong Python. Khối except sẽ chỉ chạy nếu một ngoại lệ KeyError được đưa ra trong khối try. Bạn có thể sử dụng từ khóa pass để bỏ qua ngoại lệ

Lỗi là nguyên nhân tồn tại của lập trình viên. Bạn viết một đoạn mã tuyệt vời, sẵn sàng thực thi nó và xây dựng một mô hình máy học mạnh mẽ, sau đó gặp sự cố. Python đưa ra một lỗi không mong muốn, chấm dứt hy vọng thực thi mã nhanh chóng của bạn

Mỗi người trong chúng ta đều phải đối mặt với vấn đề này và trở thành một lập trình viên giỏi hơn từ nó. Xử lý các lỗi và lỗi là điều giúp chúng tôi tự tin về lâu dài và dạy cho chúng tôi những bài học quý giá trong quá trình thực hiện

Chúng ta có một số quy tắc khi viết chương trình bằng bất kỳ ngôn ngữ lập trình nào, chẳng hạn như không sử dụng dấu cách khi định nghĩa tên biến, thêm dấu hai chấm [. ] sau câu lệnh if, v.v. Nếu chúng tôi không tuân theo các quy tắc này, chúng tôi sẽ gặp phải Lỗi cú pháp và chương trình của chúng tôi từ chối thực thi cho đến khi chúng tôi loại bỏ các lỗi đó

Nhưng có những trường hợp chương trình đúng về mặt cú pháp và nó vẫn báo lỗi khi chúng ta cố thực thi chương trình. Những gì đang xảy ra ở đây? . Và xử lý những lỗi này được gọi là xử lý ngoại lệ

Chúng ta sẽ nói tất cả về xử lý ngoại lệ trong Python tại đây

Mục lục

  1. Ưu điểm của xử lý ngoại lệ
  2. Ngoại lệ phổ biến
  3. Tuyên bố thử và ngoại trừ
  4. tuyên bố khác
  5. Tuyên bố cuối cùng
  6. Trường hợp sử dụng thực tế của Xử lý ngoại lệ

Ưu điểm của xử lý ngoại lệ

Tại sao bạn nên học xử lý ngoại lệ?

  1. Giả sử bạn đã viết một tập lệnh để đọc hàng nghìn tệp có trong nhiều thư mục. Bây giờ, có thể có một số loại lỗi ở đó, chẳng hạn như loại tệp bị thiếu hoặc có định dạng không chính xác hoặc tệp có sẵn trong các tiện ích mở rộng khác nhau. Trong trường hợp đó, việc mở tất cả các tệp và viết một tập lệnh tương ứng là không khả thi. Xử lý ngoại lệ cho phép chúng tôi xác định nhiều điều kiện. Ví dụ: nếu định dạng sai, hãy sửa định dạng trước rồi thử đọc tệp. Nếu không, hãy bỏ qua việc đọc tệp đó và tạo một tệp nhật ký để chúng tôi có thể xử lý sau
  2. Thứ hai, giả sử chúng ta đang thu thập dữ liệu nhà hàng từ một trang web và tập lệnh của chúng ta sẽ tìm kiếm tên, đánh giá và địa chỉ của nhà hàng. Vì một số lý do, địa chỉ của nhà hàng bị thiếu trên trang web. Trong trường hợp này, nếu chúng tôi không xử lý các ngoại lệ, tập lệnh của chúng tôi có thể dừng giữa chừng, vì vậy trong khi thu thập dữ liệu với số lượng lớn, điều cần thiết là chúng tôi phải xử lý các ngoại lệ

Ngoại lệ phổ biến

Đây là danh sách các ngoại lệ phổ biến mà bạn sẽ gặp trong Python

  • ZeroDivisionError. Nó tăng lên khi bạn cố gắng chia một số cho 0
  • ImportError. Nó xuất hiện khi bạn cố gắng nhập thư viện chưa được cài đặt hoặc bạn đã cung cấp tên sai
  • ________số 8. Xảy ra khi không tìm thấy chỉ mục trong chuỗi. Ví dụ: nếu độ dài của danh sách là 10 và bạn đang cố truy cập chỉ mục thứ 11 từ danh sách đó thì bạn sẽ gặp lỗi này
  • IndentationError. Tăng lên khi thụt đầu dòng không được chỉ định đúng cách
  • KeyError0. Xảy ra khi hàm tích hợp sẵn cho một loại dữ liệu có loại đối số hợp lệ, nhưng các đối số có giá trị không hợp lệ được chỉ định
  • KeyError1. Lớp cơ sở cho tất cả các ngoại lệ. Nếu bạn không chắc chắn về ngoại lệ nào có thể xảy ra, bạn có thể sử dụng lớp cơ sở. Nó sẽ xử lý tất cả chúng

Bạn có thể đọc về các ngoại lệ phổ biến hơn tại đây

Xử lý ngoại lệ trong Python. Tuyên bố thử và ngoại trừ

Hãy xác định hàm chia hai số a và b. Nó sẽ hoạt động tốt nếu giá trị của b khác không nhưng nó sẽ tạo ra lỗi nếu giá trị của b bằng không

Chúng ta có thể xử lý việc này bằng cách sử dụng câu lệnh try and except. Đầu tiên, mệnh đề try sẽ được thực thi, đó là câu lệnh nằm giữa từ khóa try và except

Nếu không có ngoại lệ xảy ra, mệnh đề ngoại trừ sẽ bị bỏ qua. Mặt khác, nếu một ngoại lệ xảy ra trong quá trình thực thi mệnh đề try, thì phần còn lại của các câu lệnh try sẽ bị bỏ qua

Xử lý ngoại lệ trong Python. tuyên bố khác

Trong Python, chúng ta cũng có thể hướng dẫn chương trình thực thi một số dòng mã nhất định nếu không có ngoại lệ xảy ra bằng cách sử dụng mệnh đề khác. Bây giờ, nếu không có ngoại lệ nào xảy ra trong đoạn mã trên, chúng tôi muốn in “Không có lỗi xảy ra. ”

Hãy xem làm thế nào để làm điều này

Xử lý ngoại lệ trong Python. Tuyên bố cuối cùng

Bây giờ, điều gì sẽ xảy ra nếu chúng ta cần một số loại hành động sẽ thực thi cho dù lỗi có xảy ra hay không [như duy trì nhật ký]. Đối với điều này, chúng ta có mệnh đề cuối cùng trong Python. Nó sẽ luôn được thực thi cho dù chương trình có bất kỳ ngoại lệ nào hay không

Chúng ta sẽ xem cách chúng ta có thể sử dụng mệnh đề cuối cùng để ghi nhật ký ở phần sau của bài viết này

Bây giờ, trong ví dụ trên, tôi muốn in giá trị của a và b sau mỗi lần thực hiện bất kể có xảy ra lỗi hay không. Hãy xem làm thế nào để làm điều đó

Trường hợp sử dụng thực tế của Xử lý ngoại lệ trong Python

Cho đến nay, chúng tôi đã thấy xử lý ngoại lệ trên một số dữ liệu ngẫu nhiên. Làm thế nào về việc tăng đòn bẩy lên một bậc và hiểu điều này bằng cách sử dụng một ví dụ thực tế?

Chúng tôi có dữ liệu chứa thông tin chi tiết về nhân viên như trình độ học vấn, tuổi tác, số lần đào tạo đã thực hiện, v.v. Dữ liệu được chia thành nhiều thư mục theo khu vực. Thông tin chi tiết của các nhân viên thuộc cùng một khu vực được lưu trữ trong cùng một tệp

Bây giờ, nhiệm vụ của chúng ta là đọc tất cả các tệp và nối chúng lại để tạo thành một tệp duy nhất. Hãy bắt đầu bằng cách nhập một số thư viện cần thiết

Lấy cấu trúc thư mục

Để xem cấu trúc thư mục, chúng tôi sẽ sử dụng thư viện toàn cầu và để đọc các tệp CSV, chúng tôi sẽ sử dụng thư viện Pandas

Xem cấu trúc thư mục bằng toàn cầu. chức năng toàn cầu và đường dẫn của thư mục đích. Bạn có thể tải xuống cấu trúc thư mục tại đây

Chúng ta có thể thấy rằng tên thư mục được biểu thị dưới dạng một số số và trong bước tiếp theo sẽ đi qua từng thư mục và xem các tệp hiện có

Trong mỗi thư mục, có một tệp CSV chứa thông tin chi tiết về nhân viên của khu vực cụ thể đó. Bạn có thể mở và xem bất kỳ tệp CSV nào. Dưới đây là hình ảnh về giao diện của dữ liệu trong khu vực_1. tệp csv. Nó chứa thông tin chi tiết của nhân viên thuộc khu vực 1

đọc các tập tin

Bây giờ, chúng tôi biết rằng có một mẫu trong cấu trúc thư mục và tên tệp. Trong thư mục n có tên tệp CSV là region_n. Vì vậy, bây giờ chúng tôi sẽ cố gắng đọc tất cả các tệp này bằng vòng lặp

Chúng tôi biết rằng số lượng tối đa là 34, vì vậy chúng tôi sẽ sử dụng vòng lặp for để lặp và đọc các tệp theo thứ tự

Bạn có thể thấy rằng tệp vùng_7 không có. Vì vậy, một trong những cách đơn giản hơn để giải quyết vấn đề này là đặt một điều kiện nếu trong chương trình – nếu tên thư mục là 7 thì bỏ qua việc đọc từ tệp đó

Nhưng nếu chúng ta phải đọc hàng ngàn tệp cùng nhau thì sao?

Ở đây, chúng ta sẽ sử dụng câu lệnh try and except để xử lý các lỗi. Nếu có bất kỳ ngoại lệ nào trong thời gian chạy khi đọc bất kỳ tệp nào, chúng tôi sẽ bỏ qua bước đó và tiếp tục đọc thư mục tiếp theo. Chúng tôi sẽ in tên tệp với “Không tìm thấy tệp. ” nếu lỗi là FileNotFoundError và in tên tệp với “Another Error. ” nếu có bất kỳ lỗi nào khác xảy ra

Chúng tôi có thể thấy rằng chúng tôi đã gặp một lỗi khác trong tệp số 32. Hãy thử đọc tệp này một cách riêng biệt

Có một số vấn đề với định dạng của Tệp 32. Nếu bạn mở tệp region_32. csv, bạn sẽ thấy rằng có một số nhận xét được thêm vào đầu tệp và chúng tôi có thể đọc tệp đó bằng cách sử dụng tham số bỏ qua

Hãy xem cách xử lý việc này

Câu lệnh Thử, Ngoại trừ và Khác

Chúng tôi sẽ tạo hai biến boolean – parse_error, file_not_found – và khởi tạo cả hai biến là Sai khi bắt đầu mỗi lần lặp. Vì vậy, nếu chúng tôi nhận được FileNotFoundError, thì chúng tôi sẽ đặt file_not_found là True

Sau đó, chúng tôi sẽ in tệp cụ thể đó bị thiếu và bỏ qua lần lặp đó. Nếu chúng tôi nhận được ParserError, thì chúng tôi sẽ đặt parse_error thành True và in rằng tệp cụ thể có định dạng không chính xác và đọc lại tệp bằng cách sử dụng tham số bỏ qua

Bây giờ, nếu không có ngoại lệ xảy ra, thì mã trong câu lệnh khác sẽ thực thi. Trong câu lệnh khác, chúng tôi sẽ nối khung dữ liệu vào danh sách khung dữ liệu

Câu lệnh Thử, Ngoại trừ, Khác và Cuối cùng

Giả sử bạn muốn tạo một tệp nhật ký để theo dõi xem tệp nào đúng và tệp nào có lỗi. Đây là một trường hợp sử dụng của câu lệnh cuối cùng. Cho dù bạn có gặp lỗi hay không, câu lệnh cuối cùng sẽ thực thi

Vì vậy, trong mệnh đề cuối cùng, chúng tôi sẽ ghi vào tệp liên quan đến trạng thái của tệp ở mỗi lần lặp

Ghi chú kết thúc

Tôi sử dụng xử lý ngoại lệ trong khi thu thập dữ liệu từ nhiều trang web. Tôi muốn biết cách bạn sử dụng xử lý ngoại lệ, vì vậy hãy bình luận bên dưới những suy nghĩ của bạn và chia sẻ chúng với cộng đồng

Nếu bạn thấy bài viết này có nhiều thông tin, hãy chia sẻ nó với bạn bè của bạn và bình luận bên dưới các câu hỏi và phản hồi của bạn. Tôi đã liệt kê một số bài viết tuyệt vời liên quan đến Python và khoa học dữ liệu bên dưới để bạn tham khảo

Chủ Đề