Alternative zu "goto"-Befehl

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Maximilianibus
User
Beiträge: 43
Registriert: Samstag 13. Februar 2010, 18:14
Wohnort: Sauerbratenserver

Hi.
Ich habe gelesen, in Python gibts keinen goto-Befehl. Gibts dazu irgendne Alternative?
Gruß, Max
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Gutes Design.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Man kommt in Python wunderbar ohne aus.
Warum willst du denn gotos?

(Funktionsaufrufe, Exceptions und Schleifen _sind_ btw gotos)
Maximilianibus
User
Beiträge: 43
Registriert: Samstag 13. Februar 2010, 18:14
Wohnort: Sauerbratenserver

exceptions funktionieren nicht, da ich ja sowieso ein goto machen müsste.
schleifen: funktionieren auch nicht(apropos, kann man mit einem string eine schleife steuern? das wüde auch funktionieren)
und funktionsaufrufe:
a.) Kenne ich kaum
b.) finde ich auch kein geeignetes beispeil.
und an jbs: was sollte das? das hilft mir nicht unbedingt weiter!
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Wenn du Funktionen noch nicht kennst, dann lerne sie kennen ;)

Hier der Link zum Tutorial: http://docs.python.org/tutorial



PS: Kennst du bisher nur Assembler oder warum beharrst du so auf goto?
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Maximilianibus hat geschrieben:und an jbs: was sollte das? das hilft mir nicht unbedingt weiter!
Ein gutes Design im Code!

//Edit: und es gibt ein goto http://entrian.com/goto/
the more they change the more they stay the same
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

derdon hat geschrieben:PS: Kennst du bisher nur Assembler oder warum beharrst du so auf goto?
Ich tippe auf Basic ... :)
Maximilianibus
User
Beiträge: 43
Registriert: Samstag 13. Februar 2010, 18:14
Wohnort: Sauerbratenserver

:?
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Maximilianibus hat geschrieben:exceptions funktionieren nicht, da ich ja sowieso ein goto machen müsste.
schleifen: funktionieren auch nicht(apropos, kann man mit einem string eine schleife steuern? das wüde auch funktionieren)
und funktionsaufrufe:
a.) Kenne ich kaum
b.) finde ich auch kein geeignetes beispeil.
Was willst du denn überhaupt machen(konkretes Beispiel)? "mit einem string eine schleife steuern" das klingt irgendwie verdächtig so als würdest du wirklich nur eine Schleife haben wollen.
Benutzeravatar
jonas
User
Beiträge: 156
Registriert: Dienstag 9. September 2008, 21:03

Maximilianibus hat geschrieben:[...]
schleifen: funktionieren auch nicht(apropos, kann man mit einem string eine schleife steuern? das wüde auch funktionieren)
[...]
Was meinst du damit? Mit String eine Schleife steuern?
Sowas?:

Code: Alles auswählen

>>> myString = "python"
>>> for index, char in enumerate(myString):
	    print "Buchstabe: %s, Index %d" % (char, index)

Buchstabe: p, Index: 0
Buchstabe: y, Index: 1
Buchstabe: t, Index: 2
Buchstabe: h, Index: 3
Buchstabe: o, Index: 4
Buchstabe: n, Index: 5
Lg, Jonas
Maximilianibus
User
Beiträge: 43
Registriert: Samstag 13. Februar 2010, 18:14
Wohnort: Sauerbratenserver

ich habe das tuti durchgearbeitet, aber es ist mir immer noch nicht klar. ich kam auch schon auf die idee, klassen zu benutzen, aber im tutorial steht immer nur das "hello world", weshalb man das problem auch mit print lösen kann. ich aber habe mehrere schleifen, usw und ich kriegs nicht hin, den code in einer endlosschleife laufen zu lassen.....
also, ich möchte, das wenn mein code durchgelaufen ist, er fragt "möchten sie den code wiederholen?" und dann den GESAMTEN code nochmal durchläuft
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Maximilianibus hat geschrieben:ich habe das tuti durchgearbeitet, aber es ist mir immer noch nicht klar. ich kam auch schon auf die idee, klassen zu benutzen, aber im tutorial steht immer nur das "hello world", weshalb man das problem auch mit print lösen kann. ich aber habe mehrere schleifen, usw und ich kriegs nicht hin, den code in einer endlosschleife laufen zu lassen.....
also, ich möchte, das wenn mein code durchgelaufen ist, er fragt "möchten sie den code wiederholen?" und dann den GESAMTEN code nochmal durchläuft
Welche Schleifentypen kennst du denn?
Maximilianibus
User
Beiträge: 43
Registriert: Samstag 13. Februar 2010, 18:14
Wohnort: Sauerbratenserver

for und while(ich habe sogar mal bei google geschaut "python schleifen" da kam nur for und while)
Jack Daniels
User
Beiträge: 30
Registriert: Freitag 1. Januar 2010, 11:38

Dann mach doch eine while-Schleife, deren Abbruchbedingung von der Benutzereingabe verändert wird...
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Jonas: Du zeigst, wie man mit einer Schleife einen String "steuern" kann (was in dem Kontext auch immer "steuern" bedeuten mag...).

Der TE möchte aber mithilfe von Strings Schleifen steuern. Was das bedeutet, mag er uns am besten selbst erklären :)
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Maximilianibus hat geschrieben:for und while(ich habe sogar mal bei google geschaut "python schleifen" da kam nur for und while)
So, und jetzt setz dich mal hin, und überlege dir genau, wo der Unterschied zwischen den beiden liegt.

Abgesehen davon wäre es natürlich wie immer sehr hilfreich zu wissen, an welcher Problemstellung du dich eigentlich abmühst. Was sich aus deinen bisherigen Beiträgen entnehmen läßt, ist etwas wirr. Manchmal ist man einfach auf dem Holzweg ...

Edit: Ah, jetzt habe ich es doch gefunden.
Zuletzt geändert von Pekh am Dienstag 27. April 2010, 17:35, insgesamt 1-mal geändert.
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Maximilianibus hat geschrieben:also, ich möchte, das wenn mein code durchgelaufen ist, er fragt "möchten sie den code wiederholen?" und dann den GESAMTEN code nochmal durchläuft
Klingt doch nach einer while-Schleife. Die läuft so lange die angegebene Bedingung erfüllt ist.

Code: Alles auswählen

run_again = True
while run_again:
    # code
Wenn nicht wiederholt werden soll irgendwann in der Schleife run_again auf False setzen. Alternative: Endlosschleife(while True:) und dann mit break rausspringen(break ist ein eingeschränktes goto).
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

@OP: Poste ggf. doch Deinen bisherigen Code mal auf paste.pocoo.org. Dann kann man Dir insofern konkreter helfen, als dass man genau Deine Bezeichner sieht und benennen könnte, wo genau Du angreifen solltest. Ich habe das Gefühl Du hast evtl. das Tutorial gelesen, aber noch kein Grundverständnis für die gängigen Patterns der elementaren Kontrollstrukturen im allgemeinen.
Maximilianibus
User
Beiträge: 43
Registriert: Samstag 13. Februar 2010, 18:14
Wohnort: Sauerbratenserver

also, den code hab ich hier
bevor ihr fragt: es ist ein skript, was einen simplen würfel in der konsole darstellt. bisher habe ich nur rechstrotation eingebaut.
probierts aus, meldet "schönheitsfehler"(im CODE!) und gebt mir ne rückmeldung.
und dass am ende... da war mir langweilig...:)
Antworten