Aufgaben

Aufgabe: Geteilte Objekte dokumentieren

Betrachten Sie das folgende Python-Programm.

a = [1,2,3]
b = [a,a,a]
for i in range(0,3):
  b[i][i] = 1
sum = 0
for i in range(0,9):
  sum = sum + b[i//3][i%3]
print(sum)

Zeichnen Sie (in der besprochenen Darstellung mit Kästen und Pfeilen) die Struktur der erzeugten Listen-Objekte am Programmende.

Wie lautet die von diesem Programm erzeugte Ausgabe? Begründen Sie Ihre Antwort.

Aufgabe: Zyklische Strukturen dokumentieren

Betrachten Sie das folgende python-Programm.

a = [42,42]
a[0] = a
print(a[0][0][1])

Was gibt dieses Programm aus?

Skizzieren Sie die erzeugte Objektstruktur in der besprochenen Darstellung mit Kästen und Pfeilen.

Benennen Sie die einzelnen Anweisungen korrekt und beschreiben Sie ihren Effekt.