At My Fingertips

Wertetabelle

Aufwärmen

Aufgabe

def einerreihe(stop):
    for element in range(1, stop + 1):
        print(element, end = ", ")

einerreihe(20)
Loading...

Aufgabe

def funktion_1a(stop):
    x = 0
    for element in range(stop):
        x = x + element
        print(x, end = ", ")

funktion_1a(4)
Loading...

Seiteneffekte

funktion_1a(stop) hat einen Seiteneffekt: print(x, end = ", "). Ein Seiteneffekt ist hier ein Ausgabebefehl wie print(...) oder show_graphic(...), der in einer Funktion ist. Dies ist meist 'schlechter' Stil, jedoch als Debugger nützlich um zu verstehen, welche Werte Variablen zu einem bestimmten Zeitpunkt haben. Der Seiteneffekt ist zudem in der for-Schleife, deshalb wird bei jedem Schleifendurchlauf etwas über den print-Befehl ausgegeben.

Anstatt des Seiteneffekts würde eine saubere Codeversion (nur einmal) mit return einen Rückgabewert zurückgeben, nämlich das Endresultat ohne alle Zwischenschritte:

def funktion_1b(stop):
    x = 0
    for element in range(stop):
        x = x + element
    return x

print(funktion_1(4))

Achten Sie auch auf die unterschiedlichen Einzüge des print-Befehls und des return-Befehls:

  • In funktion_1a befindet sich print(x, end = ", ") in der for-Schleife.
  • In funktion_1b befindet sich return x nach der for-Schleife.

Eine Funktion kann überigens einen return-Befehl nur einmal ausführen. Danach hat der Compiler die Funktion verlassen und geht zum Funktionsaufruf zurück. Ein Seiteneffekt kann dagegen mehrmals pro Funktion ausgeführt werden

Wertetabelle

Um die sich ändernden Werte von Variablen in Schleifen nachzuvollziehen, erstellen Sie eine Wertetabelle für den Aufruf funktion_1b(6):

elementx + elementx (neu)
00 + 00
10 + 11
21 + 23
33 + 36
46 + 410
510 + 515

Die erste Spalte gibt für jeden Schleifendurchlauf den Wert der Schleifenvariable element an. Diese zählt auch die Schleifendurchläufe. Die zweite Spalte zeigt an, welche Werte die Variablen element und x annehmen, um den neuen Wert von x in der dritten Spalte zu berechnen. Mit einer Wertetabelle kann man für jeden Schleifendurchlauf nachvollziehen, was geschieht.

Aufgabe

def funktion_2(ende: int):
    a = 0
    for i in range(ende):
        a = a + i + i
        print(a, end = ", ")

funktion_2(5)
ia + i + ia (neu)
00 + 0 + 00
10 + 1 + 12
22 + 2 + 26
36 + 3 + 312
412 + 4 + 420
Loading...

Was Sie geübt und gelernt haben

Programmierkonzepte

  • Sie können Wertetabellen verwenden, um sich ändernde Variablenwerte in Schleifen sichtbar zu machen.
  • Sie können Ausgabebefehle als Seiteneffekte (Debugging) verwenden, um die Wertetabelle zu überprüfen.
  • Sie können Befehlssequenzen manuell (Schritt-für-Schritt) durchführen und das Ergebnis bestimmen.

Python

  • (nichts Neues)

PyTamaro

  • (nichts Neues)

This activity has been created by Gall and is licensed under CC BY-SA 4.0.

Wertetabelle

Logo of PyTamaro

PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI

Privacy PolicyPlatform Version b744b47 (Tue, 08 Oct 2024 16:30:14 GMT)