# Python

##### Dateiverarbeitung

<table border="1" id="bkmrk-lesen-with-open%28%22fil" style="border-collapse: collapse; width: 100%; height: 213.4px;"><tbody><tr style="height: 76px;"><td style="width: 13.720643%; height: 76px;">Lesen  
</td><td style="width: 86.279357%; height: 76px;">```Python
with open("file.txt", "r") as datei:
  text = datei.read()
```

</td></tr><tr style="height: 76px;"><td style="width: 13.720643%; height: 76px;">Schreiben  
</td><td style="width: 86.279357%; height: 76px;">```Python
with open("file.txt", "w") as datei:
  datei.write(text + "Hallo\n")
```

</td></tr><tr style="height: 61.4px;"><td style="width: 13.720643%; height: 61.4px;">Leerzeichen entfernen  
</td><td style="width: 86.279357%; height: 61.4px;">```Python
text.strip("\n")
```

</td></tr></tbody></table>

##### Nutzerinteraktion  


<table border="1" id="bkmrk-input%28%29-input%28%22str%22%29" style="border-collapse: collapse; width: 103.457%;"><tbody><tr><td style="width: 12.6082%;">input()

input("str")

</td><td style="width: 37.5773%;">Unterbricht den Programmablauf und wartet auf Eingabe des Users.

Programm wird danach fortgesetzt.

Der Funktion kann ein String übergeben werde, der auf dem Bildschirm angezeigt wird.

Die Eingabe des Users ist der Rückgabewert dieser Funktion. Rückgabewert ist immer String.

</td><td style="width: 49.8146%;">```Python
# Eingabeaufforderung
# Eingabe des Users wird in abfrage geschrieben
abfrage = input("Hier könnte Ihre Werbung stehen: ")

# Bildschirmausgabe
Hier könnte Ihre Werbung stehen:
# Usereingabe
Nein

print(abfrage)
# Ausgabe
Nein
```

</td></tr></tbody></table>

##### Verzweigungen

```Python
if bmi < 19:
  print("Untergewicht")
elif bmi <= 24:
  print("Normalgewicht")
else:
  print("Uebergewicht")
```

##### Schleifen

<table border="1" id="bkmrk-while-i-%3D-0-while-i-" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 26.1895%;">while  
</td><td style="width: 73.8105%;">```Python
i = 0
while i < 10:
  print(i)
  i += 1
```

</td></tr><tr><td style="width: 26.1895%;">for (eigentlich foreach)  
</td><td style="width: 73.8105%;">```Python
for zahl in [1, 2, 3]:
  print(zahl)
```

</td></tr></tbody></table>

##### Operatoren

<table border="1" id="bkmrk-in-pr%C3%BCft-ob-variable" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 13.3498%;">in  
</td><td style="width: 50.9317%;">Prüft ob Variable in angegebener Sequenz vorhanden ist

vorhanden gibt "True" zurück

nicht vorhanden gibt "False" zurück

</td><td style="width: 35.5949%;">```Python
#true
print(2 in [2, 3, 4])

#false
erg = "bla" in ["bli", "blub"]
print(erg)
```

</td></tr><tr><td style="width: 13.3498%;">range  
</td><td style="width: 50.9317%;">Funktion gibt eine Sequenz von Zahlen zurück `range(start, stop, step)`

start = inklusiver Anfang der Sequenz, optional, default ist 0

stop = exklusves Ende der Sequenz, benötigt

step = Inkrement, optional, default 1

</td><td style="width: 35.5949%;">```Python
# 0, 1, 2, 3, 4
range(5)

# 4, 5, 6, 7
range(4, 8)

# 2, 4, 6, 8
range(2, 9, 2)
```

</td></tr></tbody></table>

##### <span style="color: #000000;">Listen</span>

<table border="1" id="bkmrk-append%28%29-h%C3%A4ngt-objek" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 19.399%;">append()  
</td><td style="width: 38.6974%;">hängt Objekt an das Ende der Liste  
</td><td style="width: 41.9036%;">```Python
# hängt den Wert 5 an Liste an
liste.append(5)
```

</td></tr><tr><td style="width: 19.399%;">index()  
</td><td style="width: 38.6974%;">gibt den ersten Index zu angegebenem Wert zurück  
</td><td style="width: 41.9036%;">```Python
liste = [2, 3, 4, 5, 6, 3, 4, 5]
print(liste.index(4))
# Ausgabe ist 2
```

</td></tr><tr><td style="width: 19.399%;">insert()  
</td><td style="width: 38.6974%;">fügt Wert vor Index ein

`liste.insert(index, value)`

</td><td style="width: 41.9036%;">```Python
liste = [2, 3, 4, 5]
liste.insert(1, 6)
print(liste)
# Ausgabe [2, 6, 3, 4, 5]
```

</td></tr><tr><td style="width: 19.399%;">remove()  
</td><td style="width: 38.6974%;">entfernt das erste Vorkommen des Werts

</td><td style="width: 41.9036%;">```Python
liste = [2, 3, 4, 5]
liste.remove(4)
print(liste)
# Ausgabe [2, 3, 5]
```

</td></tr><tr><td style="width: 19.399%;">reverse()  
</td><td style="width: 38.6974%;">Umdrehen der Liste in-place

</td><td style="width: 41.9036%;">```Python
liste = [2, 3, 4, 5]
liste.reverse()
print(liste)
# Ausgabe [5, 4, 3, 2]
```

</td></tr><tr><td style="width: 19.399%;">sort()  
</td><td style="width: 38.6974%;">Sortiert die Liste in-place

default = aufsteigend

"reverse=True" = absteigend

</td><td style="width: 41.9036%;">```Python
# Sortieren in aufsteigender Reihenfolge
liste = [3, 2, 5, 4]
liste.sort()
print(liste)
# Ausgabe [2, 3, 4, 5]

# Sortieren in absteigender Reihenfolge
liste = [3, 2, 5, 4]
liste.sort(reverse=True)
print(liste)
# Ausgabe [5, 4, 3, 2]
```

</td></tr><tr><td style="width: 19.399%;">Ausgabe Formatierung  
</td><td style="width: 38.6974%;">Die Ausgabe von Listen kann nach folgender Notation formatiert werde

`listenname[start:stop:step]`

start = inklusiver Startwert, default 0

stop = exklusiver Stopwert, default Länge

step = Inkrement, default 1

</td><td style="width: 41.9036%;">```Python
liste = [2, 3, 4, 5, 6, 7, 8, 9]

print(liste[0:4])
# Ausgabe [2, 3, 4]

print(liste[1:6:2])
# Ausgabe [3, 5, 7]

print(liste[2:6:2])
# Ausgabe [4, 6]
```

</td></tr></tbody></table>

##### <span style="color: #000000;">Umwandlung von Datentypen</span>

<p class="callout info">Wichtig: Alle Funktionen sind **KEINE** in-place Ersetzung</p>

<table border="1" id="bkmrk-type%28%29-gibt-den-date" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 11.6193%;">type()  
</td><td style="width: 43.1533%;">Gibt den Datentyp einer Variablen zurück  
</td><td style="width: 45.2275%;">```Python
type(5)
# Ausgabe <class 'int'>

type(5.0)
# Ausgabe <class 'float'>

type(5)
# Ausgabe <class 'str'>
```

</td></tr><tr><td style="width: 11.6193%;">str()  
</td><td style="width: 43.1533%;">Rückgabewert dieser Funktion ist ein String

</td><td style="width: 45.2275%;">```Python
str(5)
# Ausgabe '5'
```

</td></tr><tr><td style="width: 11.6193%;">int()  
</td><td style="width: 43.1533%;">Rückgabewert dieser Funktion ist ein Integer  
</td><td style="width: 45.2275%;">```Python
int("5")
# Ausgabe 5
```

</td></tr><tr><td style="width: 11.6193%;">float()  
</td><td style="width: 43.1533%;">Rückgabewert dieser Funktion ist eine Fließkommazahl  
</td><td style="width: 45.2275%;">```Python
float(5)
# Ausgabe 5.0
```

</td></tr></tbody></table>