Python gibt falsche Antwort?
Ich bin gerade am schreiben eines Rezeptbuch Programm. Das fordert bevor es die zutaten anzeigt noch an wie viele Leute mit essen, das problem ist nur das wenn man zum beispiel 7 leute eingibt das er mir dann nicht 7*200 rechnet und dann 1400g Mehl ausgibt sondern 200 mal die 7 schreibt und dann „g Mehl“
ich hoffe das Bild hilft
4 Antworten
Dein Problem ist, dass du die Portionen nicht als Zahl sondern als String angegeben hast. Außerdem ist das mit der Liste irgendwie unnötig. Du kannst es z.B. so machen:
import time
time.sleep (2)
print ("Du willst kochen? Dann bist du hier genau richtig")
Rezepte = ["(1) Waffeln", "(2) Crépe","(3) Himbeer Eis","(4) Erdbeer Eis"]
time.sleep(2)
print ("Wir haben die Rezepte ")
for x in Rezepte:
print (x)
time.sleep(0.5)
print("Gib die jeweilige Zahl des Rezeptes ein.")
auswahl = input("Rezept: ")
if int(auswahl) == 1:
print ("Super, du hast das Rezept der Waffeln ausgewählt")
time.sleep (1)
print ("Wie viele Leute essen mit?")
portionen = int(input())
print(f"""Man braucht für {portionen} Portionen:
{portionen * 1} Eier
{portionen * 200} g Mehl
{portionen * 50} g Zucker
""")
Ich hoffe ich konnte dir weiterhelfen und wenn du noch Fragen hast dann kannst du mich natürlich fragen.
LG
Ist das auch bei der 50 ? Also 50 x 7 gleich g
🤮 dein Code ist ja völlig kaputt. Ich bitte dich lerne erstmal programmieren
Das hier sollte funktionieren. Du hast keinen int
* = Leerschritt
auswahl = int(input("Rezept: "))
if int(auswahl) == 1:
****print ("Super, du hast das Rezept der Waffeln.....")
****time.sleep (1)
****print ("wie viele Leute essen mit")
****portionen = input()
****print(portionen, "Eier,", portionen * 200, "g Mehl,",
****portionen * 50, "g Zucker")
input() liefert ein string zurück, keine Zahl: https://www.programiz.com/python-programming/methods/built-in/input
Ein string mit einer Zahl n multipliziert liefert das string n-mal hintereinander gehängt: https://www.informit.com/articles/article.aspx?p=2140372&seqNum=4 ("Überlagerung von Operatoren")
Du müsstest den Rückgabewert von input() also erst in eine Zahl umwandeln: https://stackoverflow.com/questions/20449427/how-can-i-read-inputs-as-numbers