Trong bài viết này, chúng tôi sẽ xử lý lỗi chính, đây là một ví dụ về lỗi thời gian chạy; Cú pháp của mã có thể hoạt động chính xác, nhưng trong quá trình thực hiện chương trình, chương trình không thể xử lý nó do lỗi thời gian chạy của lỗi chính.
Lỗi chính là gì?
1. Lỗi chính, đó là loại lỗi thời gian chạy xảy ra khi không thể đặt khóa trong Từ điển 2. Từ điển: Thuật ngữ "Từ điển" đề cập đến một bộ sưu tập các đối tượng chưa được phân loại liên quan đến các khóa loại dữ liệu. Chúng còn được gọi là mảng kết hợp và là phiên bản cấu trúc dữ liệu của Python. Chúng được tạo thành từ các cặp giá trị khóa, với mỗi cặp ánh xạ khóa theo giá trị tương ứng của nó.
2. Dictionary: The term "dictionary" refers to an unsorted
collection of objects that deal with data type keys. They are also known as associative arrays and are Python's version of data structures. They're made up of key-value pairs, with each pair mapping the key to its corresponding value.
Đọc thêm: Những cách khác nhau để tìm căn bậc hai trong PythonDifferent ways to find Square Root in Python
Có năm phương pháp chính để xử lý một "keyerror" trong Python; Hãy xem chúng
Phương pháp 1: Nhận phương pháp
Phương pháp này là hiệu quả để xử lý các lỗi chính; Nó hoạt động với một từ điển bằng cách trả về giá trị của khóa. Mặc định thường được trả lại khi khóa được nhắc không thể được định vị. Trong trường hợp, một giá trị mặc định không được xuất ra. Mặc định là không có. Do đó, các điều kiện này đảm bảo rằng trong quá trình thực hiện chương trình, lỗi chính không xảy ra. Dưới đây là cách thực hiện phương thức Get.
employeeage = {'ken': 40, 'jade': 26, 'mark': 50}
employee = input["Get employee age for: "]
employeeage = employeeage.get[employee]
if employeeage:
print[f'{employee} is {employeeage} years old.']
else:
print[f"{employee}'s age is unknown."]
Đầu ra: Nhận tuổi nhân viên cho: tuổi của John John không được biết. Trong chương trình này, chúng tôi có thể truy cập vào độ tuổi của nhân viên dựa trên các khóa của họ được chỉ định trong Từ điển [SexpareEage]. Trong trường hợp này, chúng tôi không có độ tuổi cho John do đó không có [phương pháp], chúng tôi sẽ gặp lỗi chính nhưng sử dụng phương pháp GET, chúng tôi nhắc chương trình lấy trực tiếp tuổi hơn là chìa khóa. Vì không có độ tuổi được gán cho một khóa cho John, nên nó xuất ra [không xác định] thay vì lỗi chính.
Get employee
age for: john
john's age is unknown.
In this program we can be able to access the ages of employees based on their keys assigned in the dictionary [employeeage]. In this case, we don’t have an age for john hence without [get method] we will get a key error but using the get method we prompt the program to fetch the age itself directly rather than the key. Since there is no age assigned to a key for john, it outputs [unknown] rather than a key
error.
Phương pháp 2: Phương pháp Khối Try-Except
Như được thực hiện trong chương trình dưới đây, đây là một phương pháp đơn giản và dễ dàng để thực hiện. Trong khi sử dụng một vòng lặp, lần lặp thường xảy ra trong quá trình thực hiện chương trình. Trong trường hợp nó gặp lỗi, chương trình dừng trong trường hợp bạn muốn kiểm tra các giá trị trong từ điển và bạn không chắc chắn về các giá trị chính; Sử dụng phương thức Try-Except là hữu ích. Phương thức này ngăn chặn chương trình dừng trong quá trình thực hiện và chương trình bỏ qua và thử các giá trị tiếp theo trong vòng lặp. Việc thực hiện mã là ví dụ tốt nhất để giới thiệu cách thức hoạt động của nó.
This method prevents the program from stopping during execution, and the program skips
and tries the next values in the loop.
The code execution is the best example to showcase how it works.
d = {1: 7, 7: 6}
for i in range[1, 10]:
try:
print[d[i]]
except KeyError:
var = 0
Đầu ra: 7 6
7
6
NB Không có lỗi khóa nào được trả về vì Except cố gắng ngăn chặn chương trình dừng vì việc thực thi chỉ xuất ra các giá trị chính có mặt [7 và 6] và không nhắc nhở dừng thực thi khi các khóa khác như [4,5,8 .] Đã vắng mặt.
Phương pháp 3: Trong phương pháp vận hành
• Khi thực hiện một chương trình có từ điển và khóa, việc hiểu các giá trị và khóa của chúng là rất quan trọng • Do đó khi kiểm tra một phạm vi cụ thể của các giá trị tồn tại trong từ điển sử dụng toán tử có hiệu lực vì nó sẽ trả về các giá trị chỉ tồn tại mà không cần nhắc nhở KeyError • Chúng ta hãy xem đoạn mã bên dưới
• hence when checking a specific range of values existing in a dictionary use of IN operator is effective since it will return the values that are only existing without prompting the keyerror
• Let's have a look at the code snippet below
d = {1: 7, 7: 6}
for i in range[1, 10]:
if i in d:
print[d[i]]
Đầu ra: 7 6 • Trong chương trình này, chúng ta có thể xuất các phím 7,6 trong khi nhiều khóa khác không có mặt trong từ 1 đến 10
7
6
• In this program, we can output keys 7,6 while many other keys are not present in between 1 and 10
Phương pháp 4: Phương pháp Try-Except-Else
• Đây là một phương pháp khác để xử lý các ngoại lệ. Mẫu Try-Except-Else bao gồm ba khối: hãy thử, ngoại trừ, và nếu không. • Khi điều kiện thử không tạo ra một ngoại lệ, điều kiện khác trong câu lệnh Try-Except có lợi. Tuy nhiên, nó phải tuân thủ tất cả các ngoại lệ.
• When the try condition does not generate an exception, the else condition in a try-except statement is beneficial. It must, however, adhere to all of the exceptions.
products = {'Pan': 10, 'cooker': 5, 'aluminium': 25}
item = input['Get product:']
try:
print[f'The product {item} is {products[item]}']
except KeyError:
print[f'The product {item} is not known']
else:
print[f'There is no error in the statement']
Đầu ra: Nhận sản phẩm: Tủ lạnh sản phẩm Fridgethe không được biết đến kết thúc với mã thoát.
Get product: fridge
The product fridge is not known
Process finished with exit code.
• Trong đoạn mã này, vì tủ lạnh chưa được chỉ định bất kỳ khóa nào, nên nó không phải là một phần của từ điển, bằng cách sử dụng phương pháp Expcept khác .
Phương pháp 5: Sử dụng phương pháp xử lý ngoại lệ
• Lợi ích của việc sử dụng phương pháp này là Python có nhiều chức năng tích hợp khác nhau có thể hữu ích khi xử lý các lỗi như lỗi chính. • Khi sử dụng phương pháp này, nó hiệu quả vì nếu khóa có 0 giá trị trong từ điển, sau đó sau khi chương trình thực thi, đầu ra sẽ không phải là khóa 0 • Hãy xem xét việc triển khai
• When using this method, it is efficient since if a key has 0 value in the
dictionary, Then after the program executes, the output will not be a 0 key
• Let's have a look at the implementation
employee_dict = {'Name': 'Morris', 'ID': 1}
try:
employee_id = employee_dict['ID']
print[employee_id]
emp_dep = employee_dict['Department']
print[emp_dep]
except KeyError as e:
print['Key Not Found in Employee details:', e]
Đầu ra: 1 Không tìm thấy chính trong chi tiết nhân viên: 'Bộ'
1
Key Not Found in Employee details: 'Department'
Nhược điểm của các phương pháp sửa lỗi chính
• Xử lý ngoại lệ có thể không phát hiện các lỗi khác và chỉ phát hiện lỗi thời gian chạy chỉ trong trường hợp này. • Phương pháp Try-Except có thể tiêu tốn thời gian tính toán khi chạy chương trình khi bạn sử dụng phương pháp này. • Trong một chương trình có nhiều lỗi chính bằng cách sử dụng các phương thức này nhiều lần sẽ vô tổ chức và tăng các đoạn mã của chương trình của bạn. • Nó ảnh hưởng đến hiệu suất chung của chương trình và ràng buộc với các kịch bản cụ thể.
• Try-except method may cost the computation time of running the program once you use this method.
• In a
program with many key errors using these methods multiple times will disorganize and increase code snippets of your program.
• It affects the general performance of the program and bound to specific scenarios.
PHẦN KẾT LUẬN
• Python, giống như nhiều ngôn ngữ lập trình khác, gặp gỡ các lỗi lập trình khác nhau, chẳng hạn như lỗi chính, là lỗi thời gian chạy. • Lỗi chính là do khóa không thể nằm trong từ điển. Một bản đồ từ điển về cơ bản các giá trị. • Trong một phạm vi của các giá trị, trong toán tử, rất hữu ích để tránh trả về một lỗi chính vì nó chỉ xuất ra các giá trị. • Hãy thử ngoại trừ và các phương thức khác được sử dụng để ngăn chặn việc thực thi chương trình cúi xuống do lỗi chính. • Các phương pháp này có thể làm chậm hiệu suất của chương trình cũng như thêm nhiều đoạn mã hơn cho chương trình của bạn.
• A key error is caused when a key cannot be located in a dictionary. A dictionary maps keys to values
basically.
• Within a range of values, IN operator, is helpful to avoid returning a key error since it outputs only values present.
• Try except and else Methods are used to prevent the program execution from stooping due to a key error.
• These methods may slow down the performance of a program as well as add more code snippets for your program.