[Hikari-Python] Kapitel 07-01 Ausnahmebehandlung (Fehler und Ausnahmen)

[Python] Kapitel 07-01 Fehler und Ausnahmen

Ich habe bisher verschiedene Programme geschrieben. Führen Sie die folgenden Schritte aus, um das von Ihnen selbst geschriebene Programm auszuführen.

** [1] Programm erstellen ** Nehmen Sie zum Beispiel ein Programm, das Divisionen berechnet.

Das Erstellen eines Programms ist die Aufgabe, Code für die Verarbeitung gemäß der Grammatik eines Programms wie Python zu schreiben, damit der Computer etwas verarbeiten kann. Ich habe es oft gemacht.

print('Teilen Sie a ÷ b.')
a = int(input('Geben Sie den Wert von a ein:'))
b = int(input('Geben Sie einen Wert für b ein:'))

print(a / b)

Der obige Code ist für Menschen leicht zu lesen, kann jedoch nicht so wie er ist auf einem Computer verarbeitet werden. Um genau zu sein, kann der obige Code nicht ausgeführt werden, obwohl er von ** CPU (Central Processing Device) ** im Computer verarbeitet wird. Der Code in diesem Zustand wird manchmal als ** Quellcode ** bezeichnet.

** [2] Dolmetscherverarbeitung ** Es muss ** übersetzt ** werden, bevor der Quellcode ausgeführt werden kann. Geben Sie ** Python Interpreter ** zum Übersetzen an. Mit dem Interpreter können Sie ihn in eine ** Maschinensprache ** übersetzen, die die CPU verstehen kann. Tatsächlich ist der Interpreter in Kapitel 01 angegeben. Lass uns einen Blick darauf werfen. Klicken Sie oben rechts in Pycharm auf Konfigurationen bearbeiten. image.png

Ich habe den Teil angegeben, in dem sich der Interpreter in [Python-Interpreter] befindet. image.png

** [3] Zeile für Zeile ausführen ** Das Programm wird zeilenweise ausgeführt, während mit dem Interpreter übersetzt wird. Wenn während der Programmausführung ein Grammatikfehler auftritt, wird der folgende Fehler als Syntaxfehler angezeigt und die Übersetzung durch den Interpreter wird gestoppt. ..

Traceback (most recent call last): File "C:/Users/***/Desktop/python/chap07/samp07-01-01.py", line 6, in a = inat (Eingabe ('Bitte geben Sie den Wert von a ein:')) NameError: name 'inat' is not defined

Wenn keine grammatikalischen Fehler vorliegen, wird das Programm ausgeführt und der Vorgang fortgesetzt.

Das Obige ist der Ablauf vom Schreiben des Codes des Programms bis zur Ausführung.

Ausnahme (Division durch 0)

Ich habe bereits erwähnt, dass das Programm ausgeführt wird, wenn Sie das Programm ausführen und keine Syntaxfehler vorliegen. Selbst wenn Sie das Programm sicher ausführen, können zu diesem Zeitpunkt Probleme auftreten.

Zum Beispiel das vorherige Programm. Erstellen Sie eine Datei mit dem Dateinamen samp07-01-01.py </ font> in chap07 </ font> und geben Sie den folgenden Code ein Bitte schreibe. Dann probieren Sie es aus.

samp07-01-01.py


print('Teilen Sie a ÷ b.')
a = int(input('Geben Sie den Wert von a ein:'))
b = int(input('Geben Sie einen Wert für b ein:'))

print(a / b)

[Ausführungsergebnis] </ font> Teilen Sie a ÷ b. Geben Sie einen Wert von a: 10 ein Geben Sie einen Wert für b: 4 ein 2.5

Ich denke, es gibt kein Problem mit dem Inhalt des Programms. Dieses Mal habe ich übrigens bestätigt, dass die Übersetzung durch den Dolmetscher erfolgreich und die Ausführung erfolgreich war.

Was ist, wenn Sie nach der Ausführung ** 0 ** für den Wert von ** b ** eingeben? Versuchen Sie es erneut und geben Sie ** 0 ** in ** b ** ein.

[Ausführungsergebnis] </ font> Teilen Sie a ÷ b. Geben Sie einen Wert von a: 10 ein Geben Sie einen Wert für b ein: 0 </ font> Traceback (most recent call last): File "C:/Users/***/Desktop/python/chap07/samp07-01-01.py", line 5, in print(a / b) ZeroDivisionError: division by zero

Was passiert ist, ist, dass das Ende des Fehlers ** "Null Division Fehler: Division durch Null" ** ist, was bedeutet "Ich versuche durch 0 zu teilen und ich bekomme einen Fehler." Selbst in der Welt der Arithmetik und Mathematik können Werte nicht durch 0 geteilt werden.

Der von Ihnen eingegebene Wert ** 0 ** ist nicht der Fehler, der beim Übersetzen durch den Interpreter aufgetreten ist, sondern der ** Fehler, der aufgetreten ist, nachdem die Übersetzung erfolgreich abgeschlossen wurde **. Tatsächlich ist es eine menschliche Eingabe von ** 0 ** vom Ausführungsbildschirm zum Zeitpunkt der Ausführung. Ein Fehler, der zur Laufzeit auftritt, und nicht ein solcher Grammatikfehler, wird als Ausnahme ** bezeichnet. Auch Grammatikfehler, die während der Übersetzung durch den Interpreter auftreten, werden als ** Syntaxfehler ** bezeichnet.

Zusammenfassend gibt es ** Syntaxfehler ** und ** Ausnahmen ** in den Fehlern. Übrigens ist es eine Ausnahme, aber selbst wenn Sie darauf achten, zum Zeitpunkt der Ausführung nicht ** 0 ** als Wert von ** b ** auf dem Ausführungsbildschirm einzugeben, wird dies von Personen eingegeben, sodass eine Ausnahme wie diese vorliegt Es passiert immer irgendwo.

Ausnahme (Ausnahme, wenn über die Elemente der Liste hinaus angegeben)

Ich habe vorhin die Division durch 0 erwähnt, aber es gibt noch mehr. Wenn Sie beispielsweise die Anzahl der Elemente in einer Liste angeben, wird eine Ausnahme angezeigt, wenn Sie eine Elementnummer angeben, die die Anzahl der Elemente in der Liste überschreitet. Erstellen Sie ein neues chap07 </ font> und erstellen Sie eine Datei mit dem Dateinamen samp07-01-02.py </ font>. Dann schreiben Sie den Code unten.

07-01-02.py


ls = [1, 3, 5, 7, 9]
print(ls)
i = int(input('Bitte geben Sie die Elementnummer in der obigen Liste an:'))

print(ls[i])

[Ausführungsergebnis] </ font> [1, 3, 5, 7, 9] Geben Sie die Elementnummern in der obigen Liste an: 5 </ font> Traceback (most recent call last): File "C:/Users/***/Desktop/python/chap07/samp07-01-02.py", line 5, in print(ls[i]) IndexError: list index out of range

Am Ende der Fehlermeldung steht ** "Indexfehler: Listenindex außerhalb des Bereichs" **. Dies ist eine Fehlermeldung wie "Angeben eines Index außerhalb des Bereichs der Liste". Dieses Mal sollten die Elemente der Liste nur ** ls [0] bis ls [4] ** sein, aber da ** ls [5] ** angegeben ist, wird dies zu einer ** Ausnahme **. Auch diesmal tritt aufgrund menschlicher Eingaben eine Ausnahme auf.

Schließlich

Diesmal habe ich Ausnahmen und Syntaxfehler als Fehlertypen erwähnt. Beispiele für Ausnahmen sind die Division durch 0 und die Angabe außerhalb der Elemente der Liste. Ausnahmen aufgrund menschlicher Fehler sind häufig. Egal wie oft Sie den Menschen "Seien Sie vorsichtig" sagen, es werden Fehler auftreten. Es ist gefährlich, es anderen zu überlassen, um solche Fehler zu vermeiden.

Jetzt werde ich darüber sprechen, wie ein fehlerresistentes Programm geschrieben wird, um diese Ausnahme beim nächsten Mal zu vermeiden.

Zurück zu [Link zum Inhaltsverzeichnis]

Recommended Posts