Python - Wie man Programm zurück zum Anfang des Codes macht, anstatt [duplicate] zu schließen

7

Ich versuche herauszufinden, wie ich Python wieder an den Anfang des Codes bringen kann. In SmallBasic tun Sie

%Vor%

Aber ich kann nicht herausfinden, wie Sie das in Python machen: / Irgendwelche Ideen, jemand?

Der Code, den ich versuche zu loopen, ist dies

%Vor%

Wenn der Benutzer die Konvertierung beendet hat, möchte ich, dass er nach oben zurückkehrt. Ich kann Ihre Loop-Beispiele immer noch nicht in die Praxis umsetzen, da jedes Mal, wenn ich die def-Funktion für die Schleife verwende, "op" nicht definiert ist.

    
monkey334 13.09.2013, 17:20
quelle

7 Antworten

3

Python unterstützt, wie die meisten modernen Programmiersprachen, "goto" nicht. Stattdessen müssen Sie Kontrollfunktionen verwenden. Es gibt im Wesentlichen zwei Möglichkeiten, dies zu tun.

1. Schleifen

Ein Beispiel dafür, wie Sie genau das ausführen können, was Ihr SmallBasic-Beispiel tut, ist wie folgt:

%Vor%

So einfach ist das.

2. Rekursion

%Vor%

Hinweis zur Rekursion: Führen Sie dies nur aus, wenn Sie eine bestimmte Anzahl von Malen haben, an die Sie zum Anfang zurückkehren möchten (in diesem Fall fügen Sie einen Fall hinzu, wenn die Rekursion gestoppt werden soll). Es ist eine schlechte Idee, eine unendliche Rekursion, wie ich oben definiert habe, zu tun, weil Ihnen irgendwann der Speicher ausgehen wird!

Bearbeitet, um Frage genauer zu beantworten

%Vor%     
River Tam 13.09.2013, 17:24
quelle
16

Verwenden Sie eine Endlosschleife:

%Vor%

Dies kann sicherlich auch für Ihre start() -Funktion gelten; Sie können die Schleife entweder mit break oder mit return beenden, um die Funktion vollständig zu beenden, wodurch auch die Schleife beendet wird:

%Vor%

Wenn Sie auch eine Option zum Beenden hinzufügen möchten, könnte das sein:

%Vor%

zum Beispiel.

    
Martijn Pieters 13.09.2013 17:22
quelle
2

Sie können es leicht mit Schleifen machen, es gibt zwei Arten von Schleifen

Für Schleifen:

%Vor%

Während Schleifen:

%Vor%

Jede dieser Schleifen druckt "Hello World" fünfmal

    
K DawG 13.09.2013 17:27
quelle
2

Python hat Kontrollflussanweisungen anstelle von goto -Anweisungen. Eine Implementierung des Kontrollflusses ist Pythons while Schleife. Sie können eine boolesche Bedingung angeben (boolesche Werte sind in Python entweder Wahr oder Falsch), und die Schleife wird wiederholt ausgeführt, bis diese Bedingung falsch wird. Wenn Sie für immer eine Schleife machen wollen, müssen Sie nur eine Endlosschleife starten.

Seien Sie vorsichtig, wenn Sie den folgenden Beispielcode ausführen möchten. Drücken Sie Strg + C in Ihrer Shell, während es ausgeführt wird, wenn Sie den Prozess jemals beenden möchten. Beachten Sie, dass der Prozess im Vordergrund sein muss, damit dies funktioniert.

%Vor%

Die Zeile # do stuff here ist nur ein Kommentar. Es führt nichts aus. pass ist nur ein Platzhalter in Python, der im Grunde sagt "Hallo, ich bin eine Codezeile, aber überspringen Sie mich, weil ich nichts mache."

Nehmen wir nun an, Sie möchten den Benutzer immer und immer wieder nach Eingaben fragen und beenden das Programm nur dann, wenn der Benutzer das Zeichen 'q' zum Beenden eingibt.

Sie könnten so etwas tun:

%Vor%

cmd speichert nur die Eingaben des Benutzers (der Benutzer wird aufgefordert, etwas einzugeben und die Eingabetaste zu drücken). Wenn cmd nur den Buchstaben 'q' speichert, wird der Code break aus seiner umschließenden Schleife erzwungen. Mit der Anweisung break können Sie jede Art von Schleife umgehen. Sogar ein unendlicher! Es ist äußerst nützlich zu lernen, ob Sie jemals Benutzeranwendungen programmieren möchten, die oft auf Endlosschleifen laufen. Wenn der Benutzer nicht genau den Buchstaben "q" eintippt, wird der Benutzer nur wiederholt und unendlich oft aufgefordert, bis der Prozess gewaltsam beendet wird oder der Benutzer entscheidet, dass er genug von diesem lästigen Programm hat und nur beenden will.

    
Shashank 13.09.2013 17:23
quelle
0

Schreiben Sie eine For- oder While-Schleife und fügen Sie all Ihren Code hinein? Goto-Typ-Programmierung gehört der Vergangenheit an.

Ссылка

    
A.J. 13.09.2013 17:22
quelle
0

Sie müssen eine while-Schleife verwenden. Wenn Sie eine while-Schleife erstellen und hinter der Schleife keine Anweisung steht, wird sie zu einer Endlosschleife und stoppt erst, wenn Sie sie manuell stoppen.

    
Infamouslyuseless 13.09.2013 17:24
quelle
0
%Vor%     
ChipperChimp968 12.01.2015 13:54
quelle

Tags und Links