KeyError ist ein häufiger Fehler, auf den Programmierer, die mit der Programmiersprache Python arbeiten, häufig stoßen. Dieser Fehler tritt auf, wenn ein ungültiger Schlüssel für den Zugriff auf ein Wörterbuchelement oder eine andere Datenstruktur verwendet wird, die den Indizierungsvorgang unterstützt. Anstelle des erwarteten Werts empfängt das Programm eine KeyError-Ausnahme, die angibt, dass der angeforderte Schlüssel in der angegebenen Datenstruktur nicht vorhanden ist.
Ein solcher Fehler ist sehr nützlich zum Debuggen und Finden von Problemen im Code, da er Informationen über den Punkt liefert, an dem der Fehler auftritt. Wenn eine KeyError-Ausnahme auftritt, generiert der Python-Interpreter automatisch einen Ablaufverfolgungsbericht für die letzten Aufrufe, der angibt, wo der Fehler erkannt wurde. Dieser Bericht ermöglicht es dem Programmierer, leicht einen Ort im Code zu finden, an dem der falsche Schlüssel verwendet wurde, und den Fehler zu beheben.
Die Korrektur eines KeyError-Fehlers beinhaltet normalerweise eine gründliche Analyse des Codes und die Überprüfung, ob der richtige Schlüssel vorhanden ist, bevor er verwendet wird. In Python gibt es mehrere Möglichkeiten, um zu überprüfen, ob ein Schlüssel im Wörterbuch vorhanden ist, z. B. die Verwendung der get() -Methode, der in-Funktion oder der if-Anweisung. Mit der korrekten Überprüfung, ob ein Schlüssel in der Datenstruktur vorhanden ist, können Sie einen KeyError-Fehler vermeiden und sicherstellen, dass das Programm zuverlässig funktioniert.
Wir untersuchen den KeyError-Fehler in Python
Der KeyError-Fehler in Python tritt auf, wenn ein Programm versucht, einen Wert aus einem Wörterbuch aus einem Schlüssel abzurufen, der nicht darin enthalten ist. Dies ist einer der häufigsten Fehler, mit denen Entwickler in dieser Sprache konfrontiert sind.
KeyError-Fehler können auftreten, wenn Sie verschiedene Wörterbuchzugriffsmethoden verwenden, z. B. Operatoren [] und get(). Wenn der Schlüssel, mit dem das Programm versucht, einen Wert abzurufen, nicht im Wörterbuch vorhanden ist, löst Python eine KeyError-Ausnahme aus.
Um einen KeyError-Fehler zu vermeiden, müssen Sie zuerst mit einer Methode überprüfen, ob ein Schlüssel im Wörterbuch vorhanden ist.get() oder das Schlüsselwort in. Zum Beispiel:
my_dict = # Проверяем наличие ключа 'key1'if "key1" in my_dict:value = my_dict["key1"]print(value)else:print("Ключ не существует")
In diesem Beispiel überprüfen wir zuerst, ob der Schlüssel 'key1' im Wörterbuch vorhanden ist, indem wir das Schlüsselwort in verwenden. Wenn der Schlüssel existiert, erhalten wir seinen Wert und geben ihn auf dem Bildschirm aus. Andernfalls, wenn der Schlüssel nicht existiert, geben wir eine Fehlermeldung aus.
Sie können die Methode auch verwenden .get(), das einen Wert nach Schlüssel zurückgibt, falls vorhanden, oder einen Standardwert zurückgibt, wenn kein Schlüssel im Wörterbuch vorhanden ist. Zum Beispiel:
my_dict = # Получаем значение по ключу 'key1' или значение по умолчанию, если ключа нетvalue = my_dict.get("key1", "Ключ не существует")print(value)
In diesem Beispiel verwenden wir die Methode .get(), um den Wert nach dem Schlüssel 'key1' zu erhalten. Wenn der Schlüssel existiert, erhalten wir seinen Wert. Andernfalls erhalten wir, wenn kein Schlüssel im Wörterbuch vorhanden ist, einen Standardwert, der in diesem Fall "Der Schlüssel existiert nicht" lautet. Dann geben wir den resultierenden Wert auf dem Bildschirm aus.
Wenn Sie den KeyError-Fehler in Python lernen und damit umgehen können, können Sie viele Probleme vermeiden und Ihren Code widerstandsfähiger und zuverlässiger machen.
Was ist ein KeyError?
In Python ist ein Wörterbuch eine Datenstruktur, die aus Schlüssel-Wert-Paaren besteht. Ein Schlüssel ist ein eindeutiger Bezeichner, der verwendet wird, um auf die Werte im Wörterbuch zuzugreifen. Wenn Sie versuchen, auf einen nicht vorhandenen Schlüssel im Wörterbuch zuzugreifen, z. B. durch eckige Klammern oder die get() -Methode, wird ein KeyError-Fehler ausgelöst.
Ebenso können Sie in Listen in Python mithilfe von Indizes auf Elemente zugreifen. Wenn Sie versuchen, auf einen nicht vorhandenen Index in der Liste zuzugreifen, wird auch ein KeyError-Fehler angezeigt.
Um einen KeyError-Fehler zu vermeiden, sollten Sie immer überprüfen, ob ein Schlüssel oder Index in einem Wörterbuch oder einer Liste vorhanden ist, bevor Sie auf einen Schlüssel oder Index zugreifen. Dies kann mit der in-Anweisung oder der get() -Methode erfolgen.
Beispiel für die Verwendung des in-Operators:
colors = if "yellow" in colors: print(colors["yellow"]) else: print("Key does not exist")
Beispiel für die Verwendung der get() -Methode:
Wenn Sie dennoch einen KeyError-Fehler erhalten, kann dies auf Tippfehler oder falsche Verwendung von Wörterbuchmethoden und Listen zurückzuführen sein. Überprüfen Sie Ihren Code sorgfältig und stellen Sie sicher, dass Sie auf die richtigen Schlüssel oder Indizes zugreifen.
Ursachen des KeyError-Fehlers
Der KeyError-Fehler in Python tritt auf, wenn im Code versucht wird, auf ein Wörterbuch- oder Mengenelement zuzugreifen, dessen Schlüssel nicht vorhanden ist. Dies kann aus verschiedenen Gründen auftreten:
- Der Schlüssel wurde falsch angegeben. Wenn der angegebene Schlüssel nicht im Wörterbuch oder in der Menge vorhanden ist, gibt Python einen KeyError-Fehler aus. Überprüfen Sie, ob der Schlüssel richtig geschrieben ist, und stellen Sie sicher, dass er existiert.
- Ändern der Datenstruktur. Wenn Wörterbuchelemente oder Mengen während der Programmausführung gelöscht oder geändert wurden, können Schlüssel, auf die zuvor fehlerfrei zugegriffen werden konnte, ungültig werden.
- Falsche Programmlogik. Der Code enthält möglicherweise einen logischen Fehler, der dazu führt, dass versucht wird, auf einen nicht vorhandenen Schlüssel zuzugreifen.
Um einen KeyError-Fehler zu vermeiden, wird empfohlen, Methoden zu verwenden, um zu überprüfen, ob ein Schlüssel in einem Wörterbuch oder einer Menge vorhanden ist, z. B.:
- Die get() -Methode für Wörterbücher. Es gibt einen Wert zurück, der dem angegebenen Schlüssel entspricht, wenn der Schlüssel vorhanden ist, andernfalls wird der Standardwert zurückgegeben.
- Ein in-Schlüsselwort, mit dem Sie überprüfen können, ob ein Schlüssel in einem Wörterbuch oder einer Menge vorhanden ist.
Wenn Sie Ausnahmen im Code behandeln, können Sie einen try / except-Block verwenden, um einen KeyError-Fehler abzufangen und die entsprechende Aktion auszuführen.
Wenn Sie die Ursachen des KeyError-Fehlers verstehen, können Sie die Qualität und Zuverlässigkeit Ihres Codes verbessern und es verständlicher und einfacher zu debuggen machen.
Wie kann ich den letzten Anruf verfolgen?
Die Ablaufverfolgung ist der Prozess der Verfolgung und Aufzeichnung einer Programmausführungssequenz. Es gibt mehrere Möglichkeiten, den letzten Aufruf in Python zu verfolgen:
-
Verwenden der Traceback-Funktion.print_exc(). Diese Funktion druckt eine vollständige Ausnahmeablaufverfolgung, einschließlich Informationen zum letzten Aufruf. Anwendungsbeispiel:
import tracebacktry:# код, который может вызвать KeyError. except KeyError:traceback.print_exc()
import systry:# код, который может вызвать KeyError. except KeyError:exc_type, exc_value, exc_traceback = sys.exc_info()traceback.print_tb(exc_traceback)
from doctest import trace@trace(KeyError)def my_function(. ):# код, который может вызвать KeyError.
Mit einer dieser Methoden können Sie den letzten Aufruf leicht verfolgen und den Ort finden, an dem der KeyError aufgerufen wird. Dies wird Ihnen helfen, den Fehler zu beheben und Ihr Programm ohne Probleme fortzusetzen.
Beispielcode mit einem KeyError-Fehler
Im Folgenden finden Sie einige Codebeispiele, die einen KeyError-Fehler in Python verursachen können:
print(fruits['grape']) # KeyError: 'grape'
In diesem Beispiel führt der Versuch, auf einen nicht vorhandenen Schlüssel 'grape' im Fruits-Wörterbuch zuzugreifen, zu einem KeyError-Fehler.
print(numbers[4]) # KeyError: 4
In diesem Fall führt der Versuch, auf einen nicht vorhandenen Schlüssel 4 im numbers-Wörterbuch zuzugreifen, ebenfalls zu einem KeyError-Fehler.
names = ['Alice', 'Bob', 'Charlie']
print(names[3]) # IndexError: list index out of range
Obwohl der Fehler in diesem Beispiel mit dem Index der Liste und nicht mit dem Schlüssel zusammenhängt, kann er immer noch als ein ähnlicher KeyError-Fehler behandelt werden. Der Versuch, auf ein Listenelement zuzugreifen, das außerhalb seiner Grenzen liegt, führt zu einem Fehler.
Dies sind nur einige Codebeispiele, die einen KeyError-Fehler in Python verursachen können. Ein KeyError-Schlüsselfehler tritt auf, wenn der gewünschte Schlüssel nicht in einem Wörterbuch oder einer anderen Auflistung vorhanden ist und der Versuch, darauf zuzugreifen, zu einer Ausnahme führt.