Python Rezept programmieren?

2 Antworten

Was Du eigentlich machen willst:

match auswahl:
   case '1':
       ....
   case '2':
       ....
   case '3':
       ....

Je nach Bedarf kannste natürlich auch casten. Übrigens sidn Deine Rezeptlisten einelementig bestehend aus einem String.

Wie Du das eigentlich sinnvollerweise machen würdest:

recipes=("2 Eier, 600g Mehl, 200g Milch", "....", ...)
recipe=int(input(...))
if recipe <= len(recipes):
     print recipes[recipe-1]

Da kannste Dir die Matchingtirade gleich ersparen - noch bequemer wäre es nen dictionary zu nutzen. Das hier ist nur exemplarisch, von daher auch keien Fehlerbehandlung.

Das Problem hast du dir selbst gebaut.

Du hast drei voneinander unabhängige IF-Blöcke, die NACHEINANDER geprüft werden.

Bei den Eingaben 1 und 2 erfolgt im ersten oder im zweiten Block eine Ausgabe. zusätzlich treffen diese beiden Eingabewerte nicht auf die Bedingung im dritten Block zu, weshalb hier der ELSE-Zweig greift.

Die Ausgabe des Textes ist nach deinem Code also vollkommen korrekt.

Wenn du hier korrekt vorgehen wolltest, dann machst du aus

if .....
if ....
if ....
else..... 

eben einen gescheiten Block mit

if ....
elif ....
elif ....
else ....

Damit ist das eine Abfrage mit mehreren Bedingungen und der Else-Zweig greift nur dann, wenn keiner der vorangegangenen Bedingungen erfüllt wird.

Metython 
Fragesteller
 08.08.2023, 14:23

Vielen Dank für die schnelle Antwort, es hat jetzt funktioniert

0