ich habe folgenden Code geschrieben:
-------------------------------------------------------------Code Anfang - A = 2 bis print r habe ich eingerückt
r = 3e3
def (Gewicht (r):
A = 2
B = 2
C = 2
r = A * B * C
print r
Gewicht (r)
print r
---------------------------------------------------------Code Ende
Ausgabe:
8
3000
erwartet habe ich
8
8
was mache ich falsch? Ich habe schon vieles versucht? Hat alles zu Fehlermeldungen geführt.
def
Du hast den Scope von r nicht berücksichtigt; die beiden 'r's innerhalb bzw. außerhalb der Funktion sind zwei verschiedene und die Zuweisung innerhalb der Funktion betrifft das globale 'r' nicht. Daher bekommst du folgerichtig für das zweite 'r' 3000. Wenn du das äußere 'r' ändern möchtest, musst du den Wert innerhalb der Funktion mit return zurückgeben und die Rückgabe des Funktionsaufrufs an den Namen 'r' binden.
Übrigens: Es gibt im Editor hier im Forum Code-Tags, die speziell für Python-Code gedacht sind. 'Gewicht' würde man, wie alle Funktionsnamen, klein schreiben. Zudem ist da eine '(' zu viel und der Parameter wird auch nicht verwendet.
Übrigens: Es gibt im Editor hier im Forum Code-Tags, die speziell für Python-Code gedacht sind. 'Gewicht' würde man, wie alle Funktionsnamen, klein schreiben. Zudem ist da eine '(' zu viel und der Parameter wird auch nicht verwendet.
ich habe return r = A*B*C gesetzt; Fehlermeldung "invalid Syntax" unter =.
ich habe in die def unter print r gesetzt return r; dann kommt wieder 8 und 3000 wie vorher.
Benötige weitere Hilfe!
vielen Dank für die anderen Hinweise. Bin leider Anfänger, wie Du merkst. Die Tutorials haben mich nicht weiter gebracht.
ich habe in die def unter print r gesetzt return r; dann kommt wieder 8 und 3000 wie vorher.
Benötige weitere Hilfe!
vielen Dank für die anderen Hinweise. Bin leider Anfänger, wie Du merkst. Die Tutorials haben mich nicht weiter gebracht.
Nicht in einer Zeile. Erst ermitteln und dann zurückgeben.DIDI.DE hat geschrieben: Samstag 11. Januar 2020, 14:54 ich habe return r = A*B*C gesetzt; Fehlermeldung "invalid Syntax" unter =.
Code: Alles auswählen
def ...
r = A * B * C
print(r)
return r
Code: Alles auswählen
def ...
return A * B * C
Ich finde den entsprechenden Abschnitt zu Funktionen im Tutorial eigentlich relativ deutlich. Beachte dort auch, wie der von der Funktion zurückgegebene Wert dann einer Variablen zugewiesen wird.DIDI.DE hat geschrieben: Samstag 11. Januar 2020, 14:54 Die Tutorials haben mich nicht weiter gebracht.
Du scheinst übrigens Python 2 zu verwenden. Gerade als Anfänger ist das sinnlos, da Python 2 zu Beginn dieses Jahres den end-of-life Status erreicht hat. Verwende ein aktuelles Python 3.
ich habe folgenden Code gemäß den Hinweisen geändert:
Ausgabe:
8
3000
erwartet habe ich
8
8
was mache ich falsch? es muss etwas sehr dummes sein.
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
Ausgabe:
8
3000
erwartet habe ich
8
8
was mache ich falsch? es muss etwas sehr dummes sein.
r = gewicht(r)
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
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.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
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
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
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
Code: Alles auswählen
def berechne_gewicht(a, b, c):
r = a * b * c
return r
Code: Alles auswählen
def berechne_gewicht(a, b, c):
return a * b * c
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)