# Übersicht Python ## Verzweigungen (if-else) ```python= if [Bedingung]: [Iterationen falls Bedingung zutrifft] else: [Iterationen sonst] ``` Es ist in Python auch Verzweigungen mit mehreren Bedingungs-Zweigen zu erstellen. Die sieht dann wiefolgt aus: ```python= if [Bedingung]: [Anweisungen falls Bedingung zutrifft] elif [Bedingung 2]: [Anweisungen falls Bedingung 2 zutrifft] elif [Bedingung n]: [Anweisungen falls Bedingung n zutrifft] else: [Anweisungen sonst] ``` ## Schleifen ### while-Schleife ```python= while (Abbruchsbedingung): [Iterationen solang Abbruchsbedingung erfüllt ist] ``` ### for-Schleife #### for-Schleife mit `range()` Funktion Bei der for-Schleife gibt es unterschiedliche Formen. Zum einen kann man diese mit `range()` und einem Parameter bilden. Dabei ist der übergebene Parameter der Wert, bei der die Schleife keine neue Wiederholung anfängt und abbricht. ```python= for [Variable] in range([bis]): [Iterationen bis die gewählte Variable den Parameter-Wert erreicht] ``` Beispiel: ```python= for i in range(10): print(i) ``` Alternativ dazu kann man an range() auch zwei Parameter übergeben. ```python= for [Variable] in range([von], [bis]): [Iterationen bis die gewählte Variable den Parameter-Wert erreicht] ``` Beispiel: ```python= for i in range(10,20): print(i) ``` Oder `range()` mit drei Parameter: ```python= for [Variable] in range([von], [bis], [Schritt]): [Iterationen bis die gewählte Variable den Parameter-Wert erreicht] ``` Beispiel: ```python= for i in range(0,30, 3): print(i) ``` #### for-Schleife auf Listen und Strings ```python= fruechte = ["Apfel", "Orange", "Banane", "Kiwi"] for x in fruechte: print(x) for x in "Hello World": print(x) ``` #### break und continue ```python= fruechte = ["Apfel", "Orange", "Banane", "Kiwi"] for element in fruechte: if element == "Banane": break print(element) gemuese = ["Gurke", "Tomate", "Kuerbis", "Kartoffel"] for element in gemuese: if element == "Kuerbis": continue print(element) ``` ## Datentypen verändern In Python kann es hilfreich sein Datentypen von bestimmten Werten zu verändern. Zum Beispiel werden bei der `input()` Funktion alle Eingaben als String eingelesen. Da man ja bekanntlich nicht mit Texten rechnen kann, muss man die Eingaben in numerische Datentypen umwandeln. Das funktioniert mit den Funktionen `int()`, `float()` und `complex()`. Das gleiche funktioniert auch mit `bool()`. Um sich den Datentyp einer Variable anzeigen zu lassen nutzt man die Funktion `type()`. Hier ein Beispiel: ```python= x = int(input()) # wandelt Eingabe in ganze Zahl (Integer) um y = float(input()) # wandelt Eingabe in Kommazahl (Float) um z = bool(input()) # wandelt Eingabe in boolschen Wert (True, False) um print(type(x), x) print(type(y), y) print(type(z), z) ``` :::danger **ACHTUNG!** `bool()` liefert nur False, wenn die Eingabe leer bleibt oder eine 0 enthält. Für alle anderen Werte liefert `bool()` ein True. ::: ## Funktionen & Methoden auf Listen Es gibt in Python eine Menge von Funktionen, mit denen man Listen manipulieren kann. Hier eine Auflistung der für uns wichtigsten Funktionen auf zwei unterschiedliche zufällige Listen. ```python= liste1 = [2, 5, 36, 7, 354, 3, 75, 4] liste2 = ['f','c','k','a','m','f', 's'] max(liste1) # liefert den Wert 354 max(liste2) # liefert den Wert 'm' min(liste1) # liefert den Wert 2 min(liste2) # liefert den Wert 'a' len(liste1) # liefert die Länge der Liste sum(liste1) # liefert die Summe aller Listenelemente del(liste2[4]) # entfernt das Listenelement mit Index 4 (also 'm') ``` Da Listen besondere strukturelle Datentypen sind gibt es besondere Methoden, welche man auf Listen anwenden kann. Diese wendet man auf eine Liste an in dem man den Listennamen schreibt, dahinter einen Punkt setzt und dann die Methode aufruft. Siehe: ```python= liste1.index(5) # liefert den Index vom Wert 5, also 1 liste2.index('f') # liefert den ersten Index von 'f', also 0 liste2.pop() # löscht das letzte Element und gibt es aus (also 's') liste1.remove(7) # löscht die 7 aus der Liste liste2.remove('f') # löscht das erste 'f' aus der Liste liste2.append('d') # hängt ein 'd' an die Liste liste2.append(0,'f') # hängt ein 'd' an den Index 5 ein liste1.sort() # sortiert die Liste (gibt sie aber nicht aus) liste2.sort() # funktioniert auch mit Buchstaben liste1.reverse() # dreht die Liste um (Index 0 ist wird zum letzten) ``` ## Dictionary Ein besonderer Datentyp in python ist der Datentyp dictionary, das sich wie ein Wörterbuch verhält. Konkret beschreibt ein dictionary eine Abbildung von einem Wert auf einen anderen. Beispiel: ```python= wb = { "rot": "red", "grün": "green", "blau": "blue" } produkte = { 123: "Aepfel", 124: "Mandarinen", 125: "Weintrauben", 126: "Tomaten" } konzerttickets = { "Donnerstag": 12, "Freitag": 23, "Sonnabend": 35 } ``` Hier sieht man, dass einzutragende Werte, der/dem Programmierer/in überlassen wird. Nehmen wir für die weitere Betrachtung folgendes Dictionary: ```python= umsaetze= { "Montag": 1240, "Dienstag": 2013, "Mittwoch": 835, "Donnerstag": 1107, "Freitag": 1622 } ``` Um jeden Eintrag des Dictionarys durchgehen zu können bspw. für eine Ausgabe, wird eine for-Schleife genutzt: ```python= for wochentag in umsaetze: print(wochentag, " - ", umsaetze[wochentag]) ``` Für die Erstellung eines Dictionaries müssen drei wesentliche Strukturelemente berücksichtigt werden. Neben dem Namen des Dictionaries ist auch ein Schlüssel-Wert-Paar essentiell. Letzteres besteht aus einem Schlüsselwort, welches mit dem Wertwort verknüpft wird. Wird der Schlüssel erkannt, so wird dieser durch den Wert übersetzt. ![](https://i.imgur.com/rQGOJM5.jpg) ### Dictionary: Verändern Zum Ergänzen und Verändern eines Dictionaries greift man analog der list zu ```python= dic[key1] = 8 ``` Wenn also der Schlüssel `key1` im Dictionary vorhanden war, dann wird der zugeordnete Wert aktualisiert (update). ```python= dic[key1] = 9 ``` Wenn der Schlüssel `key2` nicht im Dictionary vorhanden war, dann wird das Schlüssel-Wert-Paar ergänzt (insert). ```python= wb = { "rot": "red", "grün": "green", "blau": "blue" } wb["gelb"] = "yellow" wb["rot"] = "reeeeed" print(wb) ```