Guten Abend,
ich bin Anfänger in Python und versuche einen simplen Code zu schreiben, dieser code soll immer wieder zum Anfang des Programms springen, sofern die beiden if Bedingungen nicht gegeben sind.
Also wenn 2 + 2 nicht 5 ergibt neuer Versuch, falls 3 + 3 nicht 5 ergibt dann neuer Versuch etc.
Es wäre für mich sehr hilfreich, einen angepassten Code zu bekommen, damit ich diesen verstehe. Eine Aussage, wie eine while Schleife oder for Schleife einbringen, bringt mir wenig, da ich noch nicht verstehe oder anscheinend bis dato nicht verstanden habe, wie man diesen while oder for Schleifen richtig nutzt.
Ich hoffe, jemand ist so nett und kann mir einen angepassten Code schicken und eine kleine Begründung, das wäre nett, aber nicht erforderlich, was die Begründung betrifft.
Danke vorab.
Anbei der Code:
print(" Zwei Zahlen eingeben, um auf den Wert 5 zu kommen:")
Zahl1 = float(input("\nZahl eingeben:"))
Zahl2 = float(input("Zahl 2 eingeben:"))
if Zahl1 + Zahl2 < 5:
print("Wert ist unter 5.")
elif Zahl1 + Zahl2 > 5:
print("Wert ist über 5.")
else:
print("Richtig")
Wiederholungen
Gewöhn dir gleich an, dass Namen in Pythpn klein_mit_unterstrich gechrieben werden, außer die Namen von Klassen (PascalCase).
Dann solltest du deinen Code hier im Forum in Code-Tags setzen. Die erscheinen automatisch, wenn du den </>-Button im Vollständigen Editor drückst.
Zu deinem Problem: Es gibt keine "Sprünge" in Python. Du brauchst eine while-Schleife die du abbrichst, wenn eine bestimmte Bedingung erfüllt ist.
Dann solltest du deinen Code hier im Forum in Code-Tags setzen. Die erscheinen automatisch, wenn du den </>-Button im Vollständigen Editor drückst.
Zu deinem Problem: Es gibt keine "Sprünge" in Python. Du brauchst eine while-Schleife die du abbrichst, wenn eine bestimmte Bedingung erfüllt ist.
Wie schon sparrow geschrieben hat, es gibt kein goto in Python du brauchst ein while an der richtigen stelle. Außerdem ist der Vergleich auf Gleichheit mit Floats in immer schwierig, das kommt durch die interne Darstellung von Gleitkomma Zahlen im Computer. Rechne zum Beispiel mal 0.1 + 0.2 in Python, das Ergebnis wird dich erstaunen.
Grundsätzlich gilt, wenn immer möglich solltest du versuchen in int zu rechen und keine Angst vor großen Zahlen, der Computer kann das. Bei Geld kannst du zum Beispiel immer in Cent oder Zehntel Cent rechnen und erst bei der Ausgabe in Euro konvertieren.
Wenn du in Float rechen musst/willst, solltest du dir ein Epsilon definieren und Gleichheit so definieren, dass wenn die Werte sich außerhalb des Epsilon nicht unterscheiden, dann sind sie gleich. Ähnlich solltest du auch mit den größer und kleiner als Vergleich verfahren, wie gesagt floats sind tricky und vergleiche enden oft unerwartet.
Grundsätzlich gilt, wenn immer möglich solltest du versuchen in int zu rechen und keine Angst vor großen Zahlen, der Computer kann das. Bei Geld kannst du zum Beispiel immer in Cent oder Zehntel Cent rechnen und erst bei der Ausgabe in Euro konvertieren.
Wenn du in Float rechen musst/willst, solltest du dir ein Epsilon definieren und Gleichheit so definieren, dass wenn die Werte sich außerhalb des Epsilon nicht unterscheiden, dann sind sie gleich. Ähnlich solltest du auch mit den größer und kleiner als Vergleich verfahren, wie gesagt floats sind tricky und vergleiche enden oft unerwartet.
Hallo,
Hilft dir das weiter, dein Problem selbstständig zu lösen/verstehen?
Grüße
Dennis
Lass mal folgenden Code bei dir laufen und beachte die Kommentare.
Code: Alles auswählen
number = 0
# "while True" beschreibt eine Dauerschleife, alles was danach um 4 Leerzeichen eingerückt ist,
# läuft jetzt ununterbrochen nacheinander durch
while True:
# number ist zu Beginn 0 und wird jetzt in jedem Schleifendurchgang um eins erhöht. Ausgeschrieben
# wäre es 'number = number + 1'
number += 1
# Die um eins erhöhte 'number' wird ausgegeben
print(number)
# Die Schleife soll enden, wenn 'number' = 10 ist
if number == 10:
# Die Dauerschleife kann man mit dem Schlüsselwort "break" beenden
break
Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]