[Anfänger] Erster Code seit 3 Tagen

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Antworten
Thlon96
User
Beiträge: 2
Registriert: Dienstag 18. Oktober 2022, 21:32

Hallo alle zusammen,

wie es oben schon steht habe ich seit 3 Tage angefangen zu Coden. Ich würde gerne ein kleines Feedback bekommen ob ich auf dem rechten weg bin. Habe niemanden der mir es zeigt, bin mit Büchern und Videos am lernen nach der Arbeit. Habe bis jetzt erst die (Basics), wollte aber als ich angefangen habe mit diesem Code immer mehr und habe während dessen noch etwas über die If funktionen gelesen. Hoffe es ist nicht ganz so schlecht :wink:

Mit freundlichen Grüßen

Thylon


Code: Alles auswählen

Hack_need = int(200)
noodel_need = int(250)
#Welcome
print("Welcome to BuyingList Application for Spaghetti Bolognese!")
#ask for ingredient
Hack = input("How much Hackfleisch in gram do you have?: ")
result_Hack = int(Hack)

Diff_Hack = Hack_need - result_Hack
if result_Hack < Hack_need:
    print("You need to buy " + str(Diff_Hack) + " gramm Hackfleisch!")
if result_Hack >= Hack_need:
    print("You have enough Hackfleisch!")

noodel = input("How much noodle in gram do you have?: ")
result_noodel = int(noodel)

Diff_noodel = noodel_need - result_noodel
if result_noodel < noodel_need:
    print("You need to buy " + str(Diff_noodel) + " gram Noodle!")
if result_noodel >= noodel_need:
    print("You have enough Noodle!")

Oil = input("Did u have some Oil? ('Y' or 'N'): ")
if Oil == "Y":
    print("You have enough!")
if Oil == "N":
    print("You have to buy Oil!")

if result_Hack >= int("200") and result_noodel >= int("250") and Oil == "Y":
    print("Bon Appetit, Have a nice day!")

if result_Hack < int("200") or result_noodel < int("250") or Oil == "N":
    print("You need " + str(Hack_need) + " gram Hackfleisch, " + str(noodel_need) +
          " gram noodle and Oil for Spaghetti Bolognese!")
    print("This is ur List what you have to buy: ")
    if result_Hack < Hack_need:
        print(str(Diff_Hack) + " gram Hackfleisch!")
    if result_noodel < noodel_need:
        print(str(Diff_noodel) + " gram Noodle!")
    if Oil == "N":
        print("You have to buy Oil!")
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

Lustig, dass Hash auch Hackfleisch bedeutet, mein Wörterbuch schlägt aber mince vor. Einzelne Deutsche Wörter in einem sonst englischen Code sehen etwas komisch aus. Mit einer Nudel kommt man nicht weit, so dass meist noodles im Plural verwendet werden.
Variablennamen werden generell komplett klein geschrieben, Konstanten dagegen KOMPLETT_GROSS, so dass man sie unterscheiden kann. Bei Dir also MINCE_NEEDED, aber result_mince.
200 und 250 sind bereits Integerzahlen, die nochmal per int umzuwandeln ist unsinnig. Weiter unten hast Du statt dessen int("200") stehen, was aber auch einfach nur 200 ist. Irgendwelche Zahlen sollte man aber nicht so im Code stehen haben, zumal Du am Anfang schon Konstanten für genau diesen Zweck definiert hast, MINCE_NEEDED.
`result_noodel` ist ein komischer Name, weil eigentlich ja die available_noodles abgefragt werden.
input und int kann man in einer Zeile schreiben, das zwischenspeichern in einer Variable ist nicht nötig.
Das Diff_Hack ist nur für die Ausgabe da, könnte man also direkt bei der Ausgabe berechnen und spart sich damit eine Variable.
Wenn Du mehrere if-Abfragen hast, die sich gegenseitig wiedersprechen, benutzt man elif oder else.
Du hast oben die Abfrage, ob genug Nudeln da sind, machst dann aber weiter, als ob nichts gewesen wäre, um später das selbe nochmal Abzufragen und auszugeben. Diese Dopplung im Code macht ihn nur lang und unübersichtlich.
Strings setzt man nicht mit + zusammen, sondern benutzt Formatstrings.
Der Code sollte in eine Funktion wandern, die man üblicherweise main nennt:

Code: Alles auswählen

NEEDED_MINCE = 200
NEEDED_NOODLES = 250

def main():
    #Welcome
    print("Welcome to BuyingList Application for Spaghetti Bolognese!")
    #ask for ingredient
    available_mince  = int(input("How much Hackfleisch in gram do you have?: "))

    if available_mince < NEEDED_MINCE:
        print(f"You need to buy {NEEDED_MINCE - available_mince} gramm minced meat!")
    else:
        print("You have enough Hackfleisch!")

    available_noodles = int(input("How much noodle in gram do you have?: "))
    if available_noodles < NEEDED_NOODLES:
        print("You need to buy {NEEDED_NOODLES - available_noodles} gram Noodle!")
    else:
        print("You have enough Noodle!")

    oil_available = input("Did u have some Oil? ('Y' or 'N'): ")
    if oil_available == "Y":
        print("You have enough!")
    else:
        print("You have to buy Oil!")

    if available_mince >= NEEDED_MINCE and available_noodles >= NEEDED_NOODLES and oil_available == "Y":
        print("Bon Appetit, Have a nice day!")
    else:
        print(f"You need {NEEDED_MINCE} gram minced meat, {NEEDED_NOODLES} gram noodle and Oil for Spaghetti Bolognese!")

if __name__ == "__main__":
    main()
Was jetzt noch fehlt, ist eine Fehlerbehandlung bei falscheingaben.
Thlon96
User
Beiträge: 2
Registriert: Dienstag 18. Oktober 2022, 21:32

Danke für dein erstes feedback. Ich habe wie gesagt die basics erst gelernt und war noch nicht richtig mit den if,else am arbeiten. Einige Funktionen sind mir noch unbekannt oder kann sie noch nicht richtig verbinden.
Aber Vielen Dank das wird mir sehr helfen.

Mit freundlichen Grüßen

Thylon
Antworten