Python While-Schleife funktioniert nicht richtig?
Hallo,
Ich habe ein Taschenrechner mit Fehlerbehebung und While-Schleife programmiert.
Aber das mit der While-Schleife funktioniert nicht ganz.
Hier der Code:
restart = "restart"
while restart == "restart":
print("Erste Zahl: ")
erstezahl = input()
try:
erstezahl = int(erstezahl)
except:
print("Keine gültige Eingabe!")
break
print("Operator: ")
operator = input()
print("Zweite Zahl: ")
zweitezahl = input()
try:
zweitezahl = int(zweitezahl)
except:
print("Keine gültige Eingabe!")
break
if operator == "+":
print(erstezahl, "+", zweitezahl, "=", erstezahl + zweitezahl)
elif operator == "-":
print(erstezahl, "-", zweitezahl, "=", erstezahl - zweitezahl)
elif operator == "*":
print(erstezahl, "*", zweitezahl, "=", erstezahl * zweitezahl)
elif operator == "/":
print(erstezahl, "/", zweitezahl, "=", erstezahl / zweitezahl)
else:
print("Keine gültige Eingabe!")
break
break
print("Restart = restart")
restart = input()
if restart != "restart":
print("Danke für die Verwendung meines Rechners!")
Kann mir jemand den Fehler zeigen? Danke:)
3 Antworten
Ich sehe dein Problem!
restart = "restart"
while restart == "restart":
print("Erste Zahl: ")
erstezahl = input()
try:
erstezahl = int(erstezahl)
except:
print("Keine gültige Eingabe!")
break
print("Operator: ")
operator = input()
print("Zweite Zahl: ")
zweitezahl = input()
try:
zweitezahl = int(zweitezahl)
except:
print("Keine gültige Eingabe!")
break
if operator == "+":
print(erstezahl, "+", zweitezahl, "=", erstezahl + zweitezahl)
elif operator == "-":
print(erstezahl, "-", zweitezahl, "=", erstezahl - zweitezahl)
elif operator == "*":
print(erstezahl, "*", zweitezahl, "=", erstezahl * zweitezahl)
elif operator == "/":
print(erstezahl, "/", zweitezahl, "=", erstezahl / zweitezahl)
else:
print("Keine gültige Eingabe!")
break
continue # Sonst geht die While-Schleife zuende
print("Restart = restart") #Diese Frage muss immer noch in der Schleife sein
restart = input() #Diese auch
print("Danke für die Verwendung meines Rechners!") #if restart != "restart" ist überflüssig, da man hier nur rauskommt, wenn man nicht "restart" geschrieben hat
Danke dass ich helfen konnte
Falls noch Fragen ausstehen, helfe ich gerne:)
Du solltest vielleicht die Frage nach dem restart innerhalb der Schleife durchführen und eben bei Fehlern auch nicht breaken, sondern ein continue machen.
Das dürfte wohl eher der erwarteten Funktion entsprechen.
Du solltest vielleicht beschreiben was denn nicht funktioniert. Was erwartet du das es Nacht und was macht es?
Wenn ich recht lese ist vor dem printf restart n break. Ich glaube das wirft dich aus der while Schleife. Und er fragt nicht ob du neu starten willst.
Es fragt mich nach dem Restart, aber es restarted nicht. Aber ich glaube man erkennt den Fehler besser wenn man den Coder selber ausführt:)