Coding Rätsel?

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.

  1. x=10
  2. funktion x=6 (wird nicht ausgeführt)
  3. x=4 (also nicht mehr 10)

dann wird x ausgegeben und x wurde ja zu 4 geändert!

Woher ich das weiß:Hobby – Ich Code in meiner Freizeit viel(Python und C#)

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.

Von Experte mihisu bestätigt
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.