Python Wie kann das skript von vorne beginnen?
Ich möchte dass, das Script bei print("j") nochmal von vorne beginnt
Wie kann ich das machen?
Vielen Dank für eure Antworten :)
Warum geht das nicht?
3 Antworten
Du könntest alles in eine while-Schleife packen, bei der du die Bedingung nur dann fehlschlagen lässt, wenn am Ende ein "n" eingegeben wird. Zum Beispiel:
nochmal_spielen = True
while nochmal_spielen:
print("Bis zu welcher Zahl soll es gehen?")
# [...]
if nochmal == "n":
nochmal_spielen = False
Vielleicht kriegst du die Bedingung auch eleganter hin, aber das wäre ein erster Ansatz ;)
Kein Problem. Mach dir aber auch Gedanken darüber, was da überhaupt passiert: Jetzt wird das Spiel auch dann weitergehen, wenn der Spieler irgendetwas anderes eingibt als "n", also auch bei "x" oder bei "Nein" oder bei "N"...
Kann ich dann machen es wird so lange wieder holt bis j bzw. n kommt?
Klar kannst du ;) Du brauchst nur noch ne weitere Schleife an der richtigen Stelle.
Da ist mehreres schief gegangen, aber das wichtigste: Du musst dich fragen: "Was soll eigentlich wiederholt werden?" Und alles, was wiederholt werden soll, muss in die Schleife mit rein.
Bei deinem Ansatz zum Beispiel beginnt die while-Schleife hinter der Eingabe. Das heißt, der Benutzer kann nur einmal seine Eingabe machen und wenn die Eingabe keinen Sinn ergibt, hat er halt Pech gehabt.
Aber eigentlich willst du doch, dass er immer wieder Dinge eingeben kann, bis er irgendwann "j" oder "n" eintippt. Das heißt, du musst die Schleife auch vor der Eingabe beginnen lassen.
Es ist wirklich die letzte Frage aber was kann fürs Fragezeichen rein cih habe schon alles probiert mit not und listen aber das geht nicht könntest du mir weiter helfen Danke
Alles in der Schleife:
while check:
print ("Nochmal?(Ja = j , Nein = n)")
nochmal = str(input())
if nochmal == "n":
nochmal_spielen = False
check = False
elif nochmal == "j":
check=False
elif nochmal == ? :
check = True
Wenn du einfach "check = True" über die while-Schleife packst, kannst du dir das letzte elif sparen. Der Wert bleibt dann ja True, bis er irgendwann in einem Schleifendurchlauf geändert wird.
Führ das erstmal durch und versuche es zu verstehen. Wenn du das geschafft hast, habe ich noch einen fortgeschrittenen Tipp für dich:
Übrigens musst du nicht unbedingt eine eigene Variable in das while packen. Du kannst da auch Ausdrücke reinschreiben, die entweder wahr oder falsch sind:
nochmal = ""
while nochmal != "j" and nochmal != "n":
print("Nochmal?(Ja = j, Nein = n)")
nochmal = str(input())
if nochmal == "n":
nochmal_spielen = False
Wenn du das nicht auf Anhieb verstehst, mach dir keine Sorgen und lerne erst einmal weiter die Grundlagen ;)
Vielen vielen Dank für deine Antwort du hast mir extrem weiter geholfen Danke
Und jetzt wünsche ich dir einen schönen Abend noch :)
Also ich hab eigentlich so ziemlich keine Python Erfahrung, aber wenn ich in ein altes Script schaue, was ich mal gemacht habe, ist in einer While-Loop in einem If-Statement continue und break.
Also continue für while-loop wiederholen und break für abbrechen/abschließen
Korrigiert mich gerne, habe wie gesagt Python nie wirklich gelernt, nur mal bisschen "reingeschnuppert"
Du musst das gesamte Script außer "import random" in eine While schleife packen. Also:
while True:
# hier steht der Code deines Spieles
nochmal = input("Nochmal spielen? >> ")
if nochmal.lower() != "j":
exit()
Könntest das ganze auch in eine Funktion packen und dann die Funktion immer wieder aufrufen
Hat geklappt danke