Coding Rätsel?
Also die Antwort ist 4... Aber keine Ahnung wie man auf die 4 kommt
6 Antworten
add() wird ja nie ausgeführt. Dafür müsste es erst aufgerufen werden. Hier wird es aber erst mal nur deklariert. Können wir also schonmal vernachlässigen.
Dann wird zuerst x = 10 deklariert, und danach x = 4. Daher ist x = 4 und 4 wird ausgegeben (print).
Wenn ein Wert neu deklariert wird (=), dann wird der alte Wert überschrieben.
- x=10
- funktion x=6 (wird nicht ausgeführt)
- x=4 (also nicht mehr 10)
dann wird x ausgegeben und x wurde ja zu 4 geändert!
Versuche es mal in die reale Welt zu übertragen. Man liest typischerweise in unserem Kulturkreis von links nach rechts und von oben nach unten.
Nimm an, statt X würde "Brot" stehen.
Ganz oben kostet das Brot 10 Euro.
Am nächsten Tag sollst Du den Preis des Brotes selbst errechnen: Das Brot kostet 3 Euro und zu diesem Preis sollst Du den gleichen Preis hinzufügen. Und dann sollst Du den Preis auf das Etikett schreiben: 6 Euro
Und wieder einen Tag später wird der Preis mit 4 Euro festgelegt.
Und schließlich sollst Du den Preis auf das Etikett schreiben und in die Auslage legen: 4 Euro.
Das ist der letzte Stand: Das Brot hatte verschiedene Preise und nur der jüngste Preis ist interessant und wird auch sichtbar dargestellt.
def add
definiert erstmal nur eine Funktion namens "add". Das Coding darin wird aber nicht ausgeführt, da dafür die Funktion auch aufgerufen werden müsste. D.h. für uns ist das gar nicht relevant, da kein Aufruf von "add" stattfindet.
Bleibt halt
x = 10
x = 4
Print( x )
Und x hat erst den Wert 10, der dann aber sofort mit 4 überschrieben wird - und dann mit print ausgegeben wird.
Implementierung
def add(y):
x = 3
x = y + 3
return x
Aufruf
print(add(1))
In deinem Fall wird x auf 4 gesetzt und ausgegeben.
Mit der Methode add() passiert nichts, da sie nicht - wie in meinem Beispiel - aufgerufen wird.