Zusammenfassung Datenstrukturen und Funktionen
Zusammenfassung¶
for x in range(5):
print(x)
- Listen
for x in [1, 2, 3]: # <-- x ist ein beliebiger Name
print(x)
- Strings
for x in "Hallo":
print(x)
- Dateien
# Geht natürlich nur wenn eine Datei "dateiname.txt" existiert
with open("dateiname.txt", "r") as datei:
for x in datei:
print(x)
- Sets
for x in {1, 1, 2, 2, 3, 3}:
print(x)
- Dictionaries
for x in {"a": 1, "b": 2, "c": 3}:
print(x)
- und viele mehr. Im Zweifel einfach ausprobieren
Datenstrukturen¶
Listen¶
Listen sind immer dann nützlich wenn man viele ähnliche Dinge verarbeiten will, und dabei die Reihenfolge noch entscheidend ist.
Z.B: Messdaten
meine_liste = ["a", "b", "c", "d", "e"]
Listen haben diverse Methoden, mit denen man ihren Inhalt verändern kann.
- append (hängt ein Element hinten an die Liste an)
meine_liste.append("a")
print(meine_liste)
- pop (entfernt ein Element an der angegebenen Stelle)
entferntes_element = meine_liste.pop(1)
print("Entfernt:", entferntes_element)
print(meine_liste)
- remove (entfernt das angegebene Element wenn es das erste mal auftaucht)
meine_liste.remove("d")
print(meine_liste)
- count (zählt, wie oft ein Element in der Liste auftaucht)
meine_liste.count("a")
- reverse (kehrt die Reihenfolge der Liste um)
meine_liste.reverse()
print(meine_liste)
Dabei geht die alte Reihenfolge verloren! Wer stattdessen eine neue Liste möchte, ohne die alte zu verändern, kann reversed benutzen:
umgedrehte_liste = list(reversed(meine_liste)) # meine_liste verändert sich dabei nicht
print(umgedrehte_liste)
- sort (sortiert die Liste)
meine_liste.sort()
print(meine_liste)
Die alte Sortierung geht dabei verloren! Alternative: sorted
unsortierte_liste = ["x", "c", "a", "e"]
sortierte_liste = sorted(unsortierte_liste)
print(sortierte_liste)
Sets¶
Eine ungeordnete Sammlung von unterscheidbaren Objekten (siehe https://de.wikipedia.org/wiki/Menge_(Mathematik))
Wird man vermutlich seltener brauchen als z.B. Listen.
Anwendungen sind z.B. das Entfernen von mehrfach enthaltenen Elementen aus einer Liste:
liste_mit_duplikaten = ['a', 'b', 'c', 'a', 'a', 'a', 'b', 'd', 'b', 'b', 'b', 'c', 'c', 'e']
menge = set(liste_mit_duplikaten)
liste_ohne_duplikate = list(menge)
print(liste_ohne_duplikate)
Außerdem: Mengenoperationen wie Schnitt, Vereinigung, Differenz, ...
patient = {"Vorname": "Hans",
"Name": "Müller",
"Alter": 75,
"Beschwerden": ["Kopfweh", "Rücken", "Magenschmerzen"]}
print("Patient", patient["Vorname"], patient["Name"], "hat folgende Beschwerden:")
for beschwerde in patient["Beschwerden"]:
print(beschwerde, end=" ")
Atom¶
atom = {"Element": "H",
"Name": "Wasserstoff",
"Atommasse": 1.008}
print(atom)
- Auf einen Wert zugreifen:
print(atom["Element"])
- Einen Wert ändern:
atom["Element"] = "C"
print(atom)
- Über alle Schlüssel iterieren:
for schlüssel in atom.keys():
print(schlüssel)
# Oder
for schlüssel in atom:
print(schlüssel)
- Über alle Werte iterieren:
for value in atom.values():
print(value)
- Über Schlüssel und Wert gleichzeitig iterieren:
for key, value in atom.items():
print(key, "->", value)
- Ein Element entfernen
name = atom.pop("Name")
print(name)
print(atom)
Funktionen¶
Funktionen helfen, den Code besser zu gliedern. Wenn man beispielsweise dreimal in seinem Skript eine Datei öffnet und ausliest, ist es vermutlich sinnvoll, eine Funktion dafür zu schreiben. Damit vermeidet man, sich zu wiederholen. Das reduziert wiederum die Anzahl der geschriebenen Code-Zeilen und damit die Wahrscheinlichkeit für fehlerhaften Code.
Schlechtes Beispiel:¶
with open("datei1", "r") as f:
for line in f:
print(line)
with open("datei2", "r") as f:
for line in f:
print(line)
with open("datei3", "r") as f:
for line in f:
print(line)
Besser: Mit Funktion¶
def lies_datei(dateiname):
with open(dateiname, "r") as f:
for line in f:
print(line)
lies_datei("datei1")
lies_datei("datei2")
lies_datei("datei3")
Funktionen können Parameter haben (Werte, die man ihnen beim Funktionsaufruf mitgibt, wie im obigen Beispiel
die Variable dateiname
).
Funktionen können Rückgabewerte haben.
Funktion mit Parametern und Rückgabewert:¶
def f(x): # <- x ist der Parameter
return x + 5 # <- durch das return hat die Funktion einen Rückgabewert
rückgabewert = f(5) # bei Funktionsaufruf, gibt die Funktion einen Wert zurück, den
# wir dann weiter verarbeiten können
Funktion mit Parametern, aber ohne Rückgabewert¶
def hallo(name):
print("Hallo", name)
Funktion ohne Parameter, aber Rückgabewert¶
def f():
return 5
Funktion ohne Parameter und ohne Rückgabewert¶
def f():
print("Hallo")