DIDI.DE hat geschrieben: Samstag 11. Januar 2020, 16:05
ich habe folgenden Code gemäß den Hinweisen geändert:
Code: Alles auswählen
r = 3e3
def gewicht (r):
A = 2
B = 2
C = 2
r = A * B * C
print r
return r
gewicht (r)
print r
Es ist nicht sinnvoll r als Parameter an die Funktion zu übergeben. Es wird dort niemals verwendet. Stattdessen erstellst du ein lokales r das dann zurückgegeben wird. Da r vor Aufruf der Funktion nicht verwendet wird muss man es damit übrigens auch nicht vorher definieren.
Zudem ist "gewicht" kein guter Name für eine Funktion. Funktionsnamen sollten Tätigkeiten beschreiben. Hier wäre also "berechne_gewicht" sicher passender.
Laut
Style Guide for Python Code solltest du übrigens besser mit 4 Leerzeichen als mit Tabulatoren einrücken. Du kannst jeden einigermaßen vernünftigen Editor so einstellen, dass er bei einem Druck auf die Tabulatortaste automatisch 4 Leerzeichen macht.
Code: Alles auswählen
def berechne_gewicht():
A = 2
B = 2
C = 2
r = A * B * C
print r
return r
r = berechne_gewicht(r)
print r
Die Funktion ist jetzt natürlich sehr statisch. Es wäre doch sicher sinnvoll, wenn sie mit verschiedenen Werten für A, B und C arbeiten könnte. Nehmen wir die doch einfach als Parameter. Zudem werden laut Konvention (der eben erwähnte Style Guide for Python Code) Variablennamen in Python klein geschrieben, also ändern wir das auch noch direkt.
Code: Alles auswählen
def berechne_gewicht(a, b, c):
r = a * b * c
print r
return r
a = 2
b = 2
c = 2
r = berechne_gewicht(a, b, c)
print r
Jetzt machen wir das noch flexibel und lassen die Werte durch den Benutzer eingeben. Ich vermute mal, dass es sich um Länge, Breite und Höhe handelt und benenne die Variablen entsprechend.
Code: Alles auswählen
def berechne_gewicht(a, b, c):
r = a * b * c
print r
return r
laenge = float(raw_input('Länge: ')
breite = = float(raw_input('Breite: ')
hoehe = = float(raw_input('Höhe: ')
gewicht = berechne_gewicht(laenge, breite, hoehe)
print gewicht
Das Gewicht wird jetzt noch zweimal ausgegeben. Einmal in der Funktion und einmal außerhalb. In der Funktion hat das eigentlich nichts zu suchen. Was ist denn, wenn du die Funktion nur für ein Zwischenergebnis brauchst und die Ausgabe an der Stelle nicht interessiert? Damit sind wir für die Funktion dann bei Folgendem:
Jetzt brauchen wir r auch nicht mehr sondern können das Ergebnis der Berechnung direkt zurückgeben.
Prinzipiell bleibt jetzt nur noch eins zu tun und zwar dringend: Python 2 deinstallieren und stattdessen Python 3 verwenden. Es gibt dadurch Codeänderungen. print ist jetzt eine Funktion und benötigt daher Klammern für die Parameter und raw_input heißt jetzt einfach input (in Python 2 solltest du input übrigens lieber nicht verwenden).
Code in Python 3:
Code: Alles auswählen
def berechne_gewicht(a, b, c):
return a * b * c
laenge = float(input('Länge: ')
breite = = float(input('Breite: ')
hoehe = = float(input('Höhe: ')
gewicht = berechne_gewicht(laenge, breite, hoehe)
print(gewicht)