Existiert eine goto-Anweisung in Python

Najwa Riyaz 22 Oktober 2021
  1. Verwenden Sie Ausnahmen, um eine goto-Anweisung in Python zu emulieren
  2. Schleifen mit break und continue Anweisungen verwenden, um eine goto Anweisung in Python zu emulieren
Existiert eine goto-Anweisung in Python

Dieser Artikel liefert Ihnen die Antwort, ob die Anweisung goto in Python existiert oder nicht.

Grundsätzlich werden goto-Anweisungen in Python nicht unterstützt. Im Allgemeinen werden diese Anweisungen allgemein verachtet, da sie zu sehr unorganisiertem Code führen; endet also im Spaghetti-Code. Ein solcher Code wird schwer zu verstehen und zurückzuverfolgen, während man versucht, Flows und Debugging zu verstehen.

Python ermöglicht strukturiertes Programmieren, indem es verschiedene Möglichkeiten zum Verzweigen von Code verwendet, z. B. die Verwendung von if-else-Ausdrücken, Ausnahmen und Schleifen.

Wenn Sie eine goto-Anweisung in Python emulieren möchten, bietet dieser Artikel einige Beispiele. Diese Methoden werden jedoch nicht empfohlen, da es eine schlechte Programmierpraxis ist, goto zu verwenden.

Verwenden Sie Ausnahmen, um eine goto-Anweisung in Python zu emulieren

Mit Ausnahmen können Sie goto strukturiert implementieren, obwohl dies keine empfohlene Programmierpraxis ist. Ausnahmen können schließlich aus tief verschachtelten Kontrollstrukturen herausspringen. Überprüfen Sie dieses Beispiel unten.

class gotolabel(Exception):
    print("from the goto label")  # declare a label


try:
    x = 4
    if x > 0:
        raise gotolabel()  # goto the label named "gotolabel"
except gotolabel:  # where to goto the label named "gotolabel"
    pass

Ausgabe:

from the goto label

Schleifen mit break und continue Anweisungen verwenden, um eine goto Anweisung in Python zu emulieren

Sie könnten Schleifen mit break- und continue-Anweisungen verwenden, um eine goto-Anweisung in Python zu emulieren. Dieses Beispielprogramm demonstriert diese Methode.

prompt = "Roll the dice "

while True:
    try:
        y = int(input(prompt))
    except ValueError:
        print("Please enter a valid number")
        continue

    if y > 6:
        prompt = "The dice has numbers 1-6 ! Input a number <6"
    elif y < 1:
        prompt = "The dice has numbers 1-6 ! Input a number >1"
    else:
        print("Correct!")
        break

Ausgabe:

Roll the dice hj
Please enter a valid number
Roll the dice 6
Correct!

Hier hilft die continue-Anweisung dem Prozess, zur nächsten Iteration der Schleife zu springen und eine Endlosschleife zu verursachen. Andererseits hilft die Anweisung break, die Schleife zu beenden.

Verwandter Artikel - Python Loop