Lokale Variablen verstehen
Die Box im Maschinenraum
def test():
geheim = 42
print(geheim)
test()
# print(geheim) # Fehler: geheim gibt es hier nicht
geheim lebt in der Funktion. Draußen ist die Box weg.
Parameter sind auch lokal
def zeige(x):
print(x)
zeige(5)
# x existiert ausserhalb nicht
Ergebnisse nach draußen bringen
Mit return:
def erzeuge_zahl():
wert = 7
return wert
a = erzeuge_zahl()
print(a)
Rate mal!
def f():
n = 1
f()
print(n)
Auflösung
Fehler – n ist lokal.
Probiere es selbst
Experiment 1
Lokale Variable printen – nur innen.
Experiment 2
return der lokalen Variable.
Experiment 3
Gleicher Name innen und außen – beobachte (vorsichtig):
x = 10
def f():
x = 99
print("innen", x)
f()
print("aussen", x)
Fehlerdetektiv
def calc():
ergebnis = 3 + 4
print(ergebnis)
Lösung
def calc():
ergebnis = 3 + 4
return ergebnis
print(calc())
Übungen
Level 1
Funktion mit lokaler Variable und print innen.
Level 2
Dieselbe Info per return nach außen.
Level 3
Zwei Funktionen, jeweils lokale summe – kein Konflikt.
Level-2-Lösung
def get_summe():
summe = 10 + 5
return summe
s = get_summe()
print(s)
Mini-Quiz
Scope sitzt! Mini-Projekt: Funktionsrechner.