Gibt es in Python einen goto Befehl?
Ich möchte das gern machen : Ich möchte einen Punkt festlegen (vielleicht :1) und dann sagen goto (1). Geht das?
3 Antworten
Hallo gerlochi,
hast also Python probiert, wunderbarst. Ich will nicht wie die anderen anfangen von wegen "goto ist .." aber ein berühmter Programmierer namens "Edsger W. Dijkstra" meinte mal: "Goto users will burn in hell". Das kannst du dir als T-Shirt kaufen, anziehen und wenn du programmierst immer mal auf deine Brust runterschauen.
Es gibt Programmierparadigmen die 2 wichtigsten sind strukturierte und objektorentierte Programmierung. Das heißt, dass ein bestimmter Stil möglichst eingehalten wird und das Programm eine Konsitenz bekommt. Irgendwo durch den Quelltext huppen bis man nicht mehr weiß was da passiert ist mist.
Objektorientiert musst du anfangs nocht programmieren aber strukturiert MUSS drin sein. Das heißt, dass du wiederkehrenden Code in Funktionen (Unterprogrammen mit Parametern) auslagerst, Schleifen und Verzweigungen benutzt...
Du tust dir damit einen Gefallen, ich weiß noch wie grauenhaft das C64 Basic war :D (selbst da gabs ne Art Prozedur aufruf.. aber die Zeilennummer musste gleich bleiben, das war die Hölle).
Versuche bei deinen Problemen umzudenken und "normale", gute Lösungen zu finden. Und vorallem: bleib dran. Statt jetzt irgendwas mit Android zu machen (siehe neuste Frage... Das brauchst das Android Studio und Ahnung, da ist alle objektorientiert und du wirst nicht durchsehen... und nein GOTO gibts da erstrecht nicht), bleib bei Python und mach meinetwegen erstmal ein "Zahl erraten"-Spiel..
Also so hier (Spieloutput):
Zahl eingeben: 5
Kleiner!
Zahl eingeben: 3
Größer!
Zahl eingeben: 4
Richtig! Du hast 3 Versuche gebraucht
Hallo gerlochi,
Python hat keinen goto-Befehl. Goto ist auch nicht empfehlenswert, weil es oftmals zu Spaghetti-Code führt.
Hättest du auch einfach selbst herausfinden können ;-)
http://stackoverflow.com/questions/18863309/the-equivalent-of-a-goto-in-python
Grüße - bormolino
ende = 13
auswahl = 0
while auswahl != ende:
auswahl = int(input("Auswahl= "))
if auswahl == 1:
print "h"
break
Erstmal solltest du den Code richtig einrücken, das ist bei Python sehr wichtig. Wenn du dann noch print() so verwendest, wie ich es in dem Beispiel getan habe, sollte es laufen. Hier mal die Korrektur:
ende = 13
auswahl = 0
while auswahl != ende:
auswahl = int(input("Auswahl= "))
if auswahl == 1:
print("h\n")
break
was ist der fehler? ich seh in nicht: ende = 13 auswahl = 0 while auswahl != ende: auswahl = int(input("Auswahl= ")) if auswahl == 1: print "h"
So zB:
http://www.python-kurs.eu/funktionen.php
Hier ein Beispiel von mir:
Funktion:
def sayHelloTo(text):
print("Hallo ", text, "\n")
Aufruf der Funktion:
sayHelloTo("bormolino")
Das Programm gibt dann folgendes aus:
Hallo bormolino
Du scheinst nicht wirkich was von Programmieren zu verstehen wenn du in jeder Sprache einen Goto Befehl suchst.
Das ist 80er Jahre Style und heute ein NoGo. Sowas gehört nicht dazu oder qualifiziert eine Sprache.
Und das soll genau was ändern?
Willst du wirklich "kluge" Ratschläge von Leuten, die kein GOTO-Konstrukt erkennen, bloß weil du es in andere Worte kleidest?
Kurz, knapp und bündig:
Der GOTO-Befehl ist ein Konstrukt aus längst vergangenen Tagen. Auch wenn hier und da mal jemand was von einer Ausnahme reden wird, wo ein GOTO vielleicht einsetzbar ist und sogar noch Sinn macht - DU wirst mit diesen Ausnahmen mindestens die nächsten 10 Jahre GANZ sicher nicht in Berührung kommen.
Wenn du also Programmieren lernen willst (und nicht nur stupides Ab- bzw. Nachtippen von Tutorials oder Videobeispielen), dann tue dir selbst einen Gefallen und lerne, deine programmtechnischen Problemlösungen (umgangssprachlich: Programme) so umzuformulieren, dass du kein GOTO benötigst. Das geht in so ziemlich jeder Sprache. Allerdings kannst du eine solche Umformulierung nur dann machen, wenn du tatsächlich wenigstens die Grundprinzipien und Befehle einer Sprache kennst.
Solltest du aber uuuuunbedingt und zwingend und aber-ich-will an deinem GOTO festhalten wollen: Lern' Assembler. Da ist ein GOTO (in verschiedenen Varianten, wenn man es so nennen will) das tägliche Brot und absolut nichts Ungewöhnliches.
Aber in allen Hochsprachen outet dich die Verwendung von GOTO sofort als blutigsten Anfänger, der erst nochmal seine Grundlagen lernen sollte, bevor man sich seiner weiteren Probleme annimmt.
(Und für die gaaanz genauen Ameisentätowierer: Wenn ein Wizard einen GOTO einsetzt, dann sehe ich das am Rest des Codes. Der sieht dann nämlich unter Garantie anders aus (z.B. automorph) als der eines N00bs.)
Ich bin jetzt weg von der Stapelverarbeitungsdateiprogrammierung (wenn man es ueberhaupt so nennt ;)). Ich programmiere jetzt (erfolgreich) Java.
danke