Python Funktionen?
Schreibe das Programm in Python, das den Benzinpreis für eine Autofahrt berechnet
Die Ausgabe soll wie folgt aussehen, dabei sollen die ersten 3 Ausgaben vom Benutzer eingegeben werden:
Benzinverbrauch in L pro 100 km: 6
Gefahrene km: 500
Preis pro Liter: 2.2
Die Benzinkosten betragen: 66.0 Euro
- wie geht man hier vor?
Soweit bin ich gekommen, aber es rechnet nicht aus..
2 Antworten
Bitte bitte um Himmelswillen gewöhne dir sofort ab Variablen mit a, b, c oder in deinem Fall mit zahl1, zahl2 etc zu betiteln.
zahl = durchschnitts_verbrauch = 6
zahl1= strecke_km = 500
zahl2 = liter_preis = 2.20
Schock schwere Not.
-------
Was auch immer du tust kann nicht funktionieren.
Du hast eine Methode berechne_benzinpreis(ergebnis) die kennt nicht die Werte von zahl .. zahl2.
1. FUNKTION
berechne_verbrauch(durchschnitts_verbrauch, strecke_km):
verbrauch = durchschnitts_verbrauch × strecke_km/ 100
return verbrauch
2. FUNKTION
berechne_benzinpreis( , )
-> Erkenne was für Variablen du benötigst!
(Bewusst nicht notiert du solltest es jetzt erkennen.)
Mache zwischen Hilfsfunktionen und der Anwendung ein Leerzeichen!
Eingabewerte:
durchschnitts_verbrauch = 6
strecke_km = 500
liter_preis = 2.20
Rechnung:
verbrauch = berechne_verbrauch(durchschnitts_verbrauch, strecke_km)
kosten = berechne_benzinpreis( , )
Ausgabe:
"Die Benzinkosten betragen: kosten Euro"
----------
Was macht dein Code?
ergebnis = berechne_benzinpreis(ergebnis)
1. Du hast keine Ausgabe aus der Konsole
2. ergebnis unbestimmt d.h. ohne Prüfung könnte der Wert jetzt 0 oder null sein.
Die Funktion selbst weiß nicht was du von ihr mit zahl bis zahl2 willst, da es diese gar nicht kennt.
wie geht man hier vor?
Du überlegst dir, wie du aus dem Benzinverbrauch (l/100km), den gefahrenen Kilometern (km) und dem Preis pro Liter auf die Benzinkosten kommst - stelle eine Formel auf ...
Diese Formel setzt du dann im Code um ... Tipp: Hierfür brauchst du dann nicht als Variablen, Input, Rechenoperationen und Output
Ich habe es ausprobiert, siehe Foto^ , ich hänge aber...
Das merke ich auch. Du wirst da bestimmt auch Fehlermeldungen bekommen haben, die du unterschlägst und ignorierst ;) Die sind in der Regel erste Anhaltspunkte. Gehen wir das ganze mal durch:
def berechne_benzinpreis(ergebnis):
benzinpreis=ergebnis(zahl/100*zahl1*zahl2)
return benzinpreis
Oh boy. Warum ist der Name der übergebenen Variable "ergebnis"? Warum rufst du ergebnis wie eine Funktion auf?
Gewöhne dir ab, mit "globalen" Variablen zu arbeiten - also verzichte darauf, zahl, zahl1 und zahl2 zu nutzen, wenn diese in der "höchsten" Ebene zur Verfügung stehen.
Entferne das "ergebnis(...)" als Methodenaufruf in der zweiten Zeile und schreibe die Formel in der Klammer direkt hin.
Und um das ganze besser darzustellen, übergebe nicht EINEN Parameter, sondern DREI: Verbrauch, gefahrene Kilometer und Preis ... mit diesen arbeitest du dann in der Methode selbst.
zahl=float(input("..."))
zahl1=float(input("..."))
zahl2=float(input("..."))
prinzipiell nicht falsch, wenn man davon ausgeht, dass der Nutzer immer gültige Floats eingibt. Gewöhne dir jedoch an, aussagekräftige Variablennamen zu nutzen.
ergebnis = berechne_benzinpreis(ergebnis)
Warum übergibst du dort "ergebnis". Was erhoffst du dir davon, eine Variable zu übergeben, die noch nicht existiert?
Wenn du, wie oben schon erwähnt, drei Parameter statt einem nutzt, musst du dann hier beim Aufruf auch drei übergeben
Ich habe es ausprobiert, siehe Foto^ , ich hänge aber...