Zum Hauptinhalt springen
Version: 28EF

Listen 1D

Zum Speichern von mehreren Werten unter einem einzigen Namen verwendet man in Python Listen. Man kann sich Listen als Tabellen mit einer Spalte vorstellen. Die Zellen in der Tabelle werden als Elemente bezeichnet und sind durchnummeriert. So kann man einzelne in der Liste gespeichert Werte unterscheiden. Die Nummer eines Elements wird als dessen Index bezeichnet.

Wichtig
  • Das erste Element in der Liste trägt den Index 0.
  • Der Index des letzten Elementes ist die Länge der Liste minus 1.

Das folgende Bild illustriert dies für eine Liste mit 4 Noten. Die Länge der Liste ist 4, das letzte Element trägt den Index 3.

Index
Wert
0
4.5
1
5
2
3.5
3
5.5

In Python kann man diese Liste wie folgt erzeugen:

noten = [4.5, 5, 3.5, 5.5]
print('Die vierte Note war eine', noten[3])

Im Beispiel wird die vierte Note mit dem Index 3 ausgegeben.

Aufgaben​

Debuggen​

Der Debug-Modus ermöglicht es, ein Programm Zeile für Zeile auszuführen und den aktuellen Zustand der Variablen zu untersuchen. Dies ist besonders hilfreich, um einerseits den Ablauf des Programms zu verstehen und andererseits Fehler im Code zu finden.

  1. Öffnen Sie ein Python-Programm in VS Code - beim erstmaligen Öffnen wird VS Code fragen, ob Sie die Python-Erweiterung installieren möchten. Bestätigen Sie dies.
  2. Setzen Sie einen Haltepunkt (Breakpoint) in der Zeile, die Sie untersuchen möchten, indem Sie links neben die Zeilennummer klicken. Klicken Sie auf die Schaltfläche Run and Debug in der linken Seitenleiste und danach auf den Debug-Knopf.
  3. Wählen Sie Python Debugger aus.
  4. Wählen Sie Python File.
  5. Das Programm hält nun beim gesetzten Breakpoint an. In der Seitenliste links können Sie alle Veriablen inspizieren. Im Reiter Debug Console können Sie zudem Python-Code direkt ausprobieren - alle Variablen und Funktionen, die beim aktuellen Haltepunkt definiert sind, können Sie hier verwenden. noten wird in der Debug-Konsole ausgebennoten wird in der Debug-Konsole ausgeben
  6. Mit der Schaltflächen Step Over können Sie das Programm Zeile für Zeile ausführen. Mit Continue wird das Programm bis zum nächsten Haltepunkt ausgeführt.
1. listen-1d.py
Dateiname
EF-Informatik/exercises/listen-1d.py
  1. Erstellen Sie das folgende Programm in Ihrem Repository

    Programm

    listen-1d.py
    '''
    Demo: Eindimensionale Listen
    '''

    # 1) Liste mit Notenwerten erzeugen und Variablen zuweisen
    noten = [3.5, 6, 5, 4.5]

    # 2) - Ganze Liste anzeigen;
    # - Element mit Index 2 aus der Liste anzeigen
    # - Länge der Liste anzeigen
    # - das letzte Element der Liste anzeigen (egal wie lange die liste gerade ist...)
    print(noten)
    print(noten[2])
    print(len(noten))
    print(noten[ len(noten) - 1 ])

    # 3) Schleife über alle Elemente der Liste
    for note in noten:
    print(note)

    # 4) Schleife über alle Elemente der Liste mit Index
    # (beginnt bei 0 und endet mit 1 weniger als Länge der Liste)
    for index in range(0, len(noten)):
    print(index, ':', noten[index])

    # 5) Element mit Index 3 neuen Wert zuweisen
    noten[3] = 5.5
    print(noten)

    # 6) Fehler: Zuweisen zu einem Element mit ungültigem Index (die Liste ist nicht so lang)
    # noten[7] = 6

    # 7) Ein weiteres Element am Schluss der Liste anhängen
    noten.append(5)
    print(noten)

    # 8) Ein Element vor dem Element mit Index 3 einfügen
    noten.insert(3, 4)
    print(noten)

    # 9) Die Liste aufsteigend sortieren
    noten.sort()
    print(noten)

    # 10) Ein Element an einer bestimmten Stelle aus der Liste entfernen (und zurückgeben)
    first = noten.pop(0)
    print(first)
    print(noten)

    # 11) Erstes Element mit dem Wert 6 aus der Liste entfernen
    noten.remove(6)
    print(noten)

    # 12) Funktion aus dem Statistikmodul verwenden, um den Mittelwert der Elemente in der Liste zu berechnen
    import statistics
    mittelwert = statistics.mean(noten)
    print(mittelwert)

    # 13) Leere Liste erstellen
    noten = []
    print(noten)

    # 14) Liste mit Strings
    noten =['gut', 'erfüllt', 'mangelhaft', 'erfüllt']
    print(noten)
  2. Führen Sie das Programm Zeile für Zeile (mit dem Debugger) aus und untersuchen Sie die verschiedenen Listen-Optionen.

  3. Setzen Sie einen Breakpoint vor dem auskommentierten Szenario 6 und führen Sie die Zeile 31 in der Debug Konsole aus. Welche Ausgabe erhält man?

    Laden...
  4. Fügen Sie die Änderungen hinzu und pushen Sie sie in Ihr Repository.

Eindimensionale Listen​

Hier nochmals in der Übersicht die Funktionsweise von Listen in Python.

Liste erzeugen []​

# Liste erzeugen und Variablen zuweisen
noten = [3.5, 6, 5, 4.5]

# Ganze Liste anzeigen
print(noten)
# Element mit Index 2 aus der Liste anzeigen
print(noten[2])

Schleife über alle Elemente der Liste​

noten = [3.5, 6, 5, 4.5]

for note in noten:
print(note)

Schleife über Listen-Indices​

noten = [3.5, 6, 5, 4.5]

# (beginnt bei 0 und endet mit 1 weniger als Länge der Liste)
for index in range(0, len(noten)):
print(index, ":", noten[index])

Listenelemente ändern​

noten = [3.5, 6, 5, 4.5]

# Element mit Index 3 neuen Wert zuweisen
noten[3] = 5.5
print(noten)

Fehler: IndexError​

noten = [3.5, 6, 5, 4.5]

# die Liste ist nicht so lang
noten[7] = 6

Element hinzufügen append()​

noten = [3.5, 6, 5, 4.5]

# Element am Ende der Liste anhängen
noten.append(5)
print(noten)

Element an bestimmter Stelle hinzufügen insert()​

noten = [3.5, 6, 5, 4.5, 5]
# vor dem Element mit Index 3 eine "4" einfügen
noten.insert(3, 4)
print(noten)

Aufsteigend sortieren sort()​

noten = [3.5, 6, 5, 4, 4.5, 5]

noten.sort()
print(noten)

Letztes Element entfernen pop()​

Letztes Element entfernen und zurückgeben.

noten = [3.5, 4, 4.5, 5, 5, 6]

last = noten.pop()
print(last)
print(noten)

Element bei Index entfernen pop(0)​

vorderstes = noten.pop(0)
print(vorderstes)
print(noten)

Element aus der Liste entfernen remove()​

noten = [3.5, 5, 4.5, 4, 5, 6]

# 11) Erstes Element mit dem Wert 5 aus der Liste entfernen
noten.remove(5)
print(noten)

Mittelwert statistics.mean()​

import statistics

noten =[3.5, 5, 4.5, 4, 5, 6]

mittelwert = statistics.mean(noten)
print(mittelwert)

Weitere Funktionen

👉 https://docs.python.org/3/library/statistics.html

Leere Liste []​

# Leere Liste erstellen
noten = []
print(noten)

Liste mit Text​

# Liste mit Strings
noten =['gut', 'erfüllt', 'mangelhaft', 'erfüllt']
print(noten)

Fragen​

Für diese Anzeigekomponente (Typ: quiz) ist eine Anmeldung erforderlich.