Python Funktionen?


14.11.2022, 19:33

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.

Woher ich das weiß:Studium / Ausbildung – Wirtschaftsinformatik (B. Sc.), HS Kempten
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

Woher ich das weiß:Studium / Ausbildung – Abgeschlossenes Studium der Informatik (B.Sc.)
ltez12 
Fragesteller
 14.11.2022, 19:33

Ich habe es ausprobiert, siehe Foto^ , ich hänge aber...

0
xxxcyberxxx  14.11.2022, 19:54
@ltez12
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

2