Ja, es gibt keine goto-Anweisung in Python. Lassen Sie uns zunächst verstehen, was goto in der C-Sprache ist. Allerdings wird auch in C von der Verwendung von goto abgeraten.
Die goto-Anweisung in der C-Programmierung ermöglicht einen bedingungslosen Sprung von „goto“ zu einer markierten Anweisung in derselben Funktion. Hier ist die Syntax -
goto label; .. . label: statement;
Schauen wir uns nun das C-Programm von goto an -
#include <stdio.h> int main () { int a = 10; LOOP:do { if( a == 15) { /* skip the iteration */ a = a + 1; goto LOOP; } printf("a = %d\n", a); a++; }while( a < 20 ); return 0; }
a = 10 a = 11 a = 12 a = 13 a = 14 a = 16 a = 17 a = 18 a = 19
Hinweis – Von der Verwendung von Goto-Anweisungen wird auch in C abgeraten.
In Python ist goto nicht erforderlich, da wir dieselbe Aufgabe mit if-Anweisungen und or und if-else-Ausdrücken und Schleifen (einschließlich continue und break) mit while- und for-Anweisungen erledigen können.
Verwenden Sie alternativ benutzerdefinierte Ausnahmen -
class goto1(Exception): pass class goto2(Exception): pass class goto3(Exception): pass def loop(): print('start') num = input() try: if num<=0: raise goto1 elif num<=2: raise goto2 elif num<=4: raise goto3 elif num<=6: raise goto1 else: print('end') return 0 except goto1 as e: print('goto1') loop() except goto2 as e: print('goto2') loop() except goto3 as e: print('goto3') loop()
Verwenden Sie verschachtelte Methoden als weitere Option -
def demo(): print("In the demo() function") def inline(): print("In") inline() demo()
In In the demo() function
Es ist ein Funktionsdekorator, der goto in Python verwendet. Getestet auf Python 2.6 bis 3.6 und PyPy. Installieren Sie es mit pip -
Hinweis: Gilt für Python 3.6
pip install goto-statement
Sehen wir uns ein Beispiel an −
# Python 3.6 from goto import with_goto @with_goto def range(start, stop): i = start result = [] label .begin if i == stop: goto .end result.append(i) i += 1 goto .begin label .end return result
Das obige ist der detaillierte Inhalt vonWarum gibt es in Python keine goto-Anweisung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!