Kann man in Python marken definieren?
Ich bin ein Großer Batch-Fan. Ich lerne gerade Python und ich habe mich gefragt, ob in Python Sachen wie:
:start
Anweisung 1
Anweisung 2
if Bedingung erfüllt goto start
Anweisung 3
Anweisung ...
eben so leicht gehen oder ob man in Python gar keine Sprungmarken setze kann.
4 Antworten
bedingung = True
while bedingung:
anweisung1
anweisung2
anweisung3
anweisung ...
Goto ist beim programmieren ziemlich verpönt, es geht eigentlich immer ohne.
Wenn man seine Marke so wie du einsetzt, braucht man „goto“. Bei geschickter Umformulierung deiner If-Konstruktion braucht kein Mensch ein Goto!
Die If-Abfrage wertet einen Ausdruck aus, der zwei verschiedene Code-Teile ausführen lässt. Gilt die Bedingung als erfüllt, wird der „erfüllte Teil“ des Codes ausgeführt, ansonsten springt der Compiler hinter diesen Teil und macht normal weiter. Analoges gilt für Programmschleifen, deren „implizite“ If-Abfrage für den Abbruch der Schleife sorgt.
Python unterstützt sowas nicht von sich aus. Ist auch nicht empfehlenswert, wenn man nicht weiß, was man tut.
Dafür wurden Schleifen erfunden.
Wie kann in dem oben genannten Beispiel das goto "ausgeschleift" werden?