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
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
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:)
![](https://images.gutefrage.net/media/default/user/5_nmmslarge.png?v=1438863662000)
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.
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
![](https://images.gutefrage.net/media/user/FouLou/1447767292308_nmmslarge__0_133_818_818_f2935abfded669c7e3a25b784947d092.jpg?v=1447767294000)
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.
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
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:)