Skip to content
Snippets Groups Projects
Commit f24b8cda authored by cmalzer's avatar cmalzer
Browse files

update

parent b801315c
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id: tags:
## if-Anweisungen und Vergleiche
%% Cell type:markdown id: tags:
In Python spielt die korrekte Einrückung des Codes eine wichtige Rolle. Eine Einrückung muss unter anderem nach einer <b>if-Anweisung</b> erfolgen, ansonsten kann der Code nicht korrekt erstellt werden. Der folgende Ausschnitt zeigt eine if-Anweisung mit korrekter Einrückung. In den meisten Python-Entwicklungsumgebungen wird die Einrückung nach Eingeben von Doppelpunkt und Enter-Taste automatisch erstellt.
%% Cell type:code id: tags:
``` python
zahl = 5
if zahl > 1: #beachten Sie die Syntax mit Schlüsselwort "if" und Doppelpunkt
print(str(5) + " ist größer als 1!")
```
%% Output
5 ist größer als 1!
%% Cell type:markdown id: tags:
Der Teil <i>if zahl > 1</i> war eine Bedingung. Hätte die Variable <i>zahl</i> den Wert 1 gehabt, wäre die print-Ausgabe nicht erfolgt.
Man kann aber auch festlegen, was passieren soll, wenn die Bedingung nicht erfüllt wird. Beachten Sie auch hier die korrekte Einrückung sowie die generelle Syntax der Anweisung.
%% Cell type:code id: tags:
``` python
zahl = 1
if zahl > 1:
print(str(5) + " ist größer als 1!")
else:
print("Die Zahl ist zu klein!")
```
%% Output
Die Zahl ist zu klein!
%% Cell type:markdown id: tags:
Um mehrere Fälle unterscheiden zu können, gibt es das Schlüsselwort <b>elif</b>. Außerdem können mehrere gleichzeitig geltende Bedingungen mit dem Schlüsselwort <b>and</b> kombiniert werden. Es gibt auch das Schlüsselwort <b>or</b> (hier nicht dargestellt), bei dem nur eine der beiden Bedingungen gelten muss.
%% Cell type:code id: tags:
``` python
vorhandenes_obst = "Apfel"
anzahl = 5
if vorhandenes_obst == "Banane" and anzahl < 5:
print("Neue Bananen kaufen!")
elif vorhandenes_obst == "Banane" and anzahl >= 5:
print("Vorrat ausreichend!")
else:
print("Es gibt keine Bananen!")
```
%% Output
Es gibt keine Bananen!
%% Cell type:markdown id: tags:
Im vorigen Beispiel wurde außerdem ein doppeltes Istgleich-Zeichen verwendet. Dieses braucht man, um zwei Werte miteinander zu vergleichen. Nicht zu verwechseln mit dem einzelnen Istgleich-Zeichen, mit dem man einer Variablen einen Wert zuweist!
Im vorigen Beispiel wurde außerdem ein doppeltes Istgleich-Zeichen verwendet. Dieses braucht man, um zwei Werte miteinander zu vergleichen. Nicht zu verwechseln mit dem einzelnen Istgleich-Zeichen, mit dem man einer Variablen einen Wert zuweist! Hier noch zwei Beispiele:
%% Cell type:code id: tags:
``` python
if "Apfel" == "Birne":
print("Hier läuft was schief...")
else:
print("Alles OK!")
```
%% Output
Alles OK!
%% Cell type:code id: tags:
``` python
apfel = "Apfel"
birne = "Apfel"
if apfel == birne:
print("Der Computer findet das logisch, aber der Mensch sollte die Namen seiner Variablen überdenken.")
```
%% Output
Der Computer findet das logisch, aber der Mensch sollte die Namen seiner Variablen überdenken.
%% Cell type:markdown id: tags:
Die Bedingung, dass zwei Werte ungleich sind, kann man mit einem <b>!=</b> ausdrücken:
%% Cell type:code id: tags:
``` python
apfel = "Apfel"
birne = "Birne"
if apfel != birne:
print("Alles richtig!")
```
%% Output
Alles richtig!
%% Cell type:markdown id: tags:
<b>Tipp: Sie haben nun das benötigte Wissen, um Übung 1 im Übungsordner zu bearbeiten.</b>
......
%% Cell type:markdown id: tags:
# Schleifen, Listen, Dictionaries
%% Cell type:markdown id: tags:
Neben if-Anweisungen sind auch Schleifen ein wichtiges Konstrukt in Python (bzw. Programmiersprachen im Allgemeinen!).
Wir behandeln hier erstmal nur sogenannte <b>for-Schleifen</b>:
%% Cell type:code id: tags:
``` python
for i in range(0,5):
print(i) #auch hier die Einrückung beachten
```
%% Output
0
1
2
3
4
%% Cell type:markdown id: tags:
Was bedeutet das i? Ganz einfach: i ist eine Variable (die auch anders heißen könnte) und nimmt in jedem Durchlauf einen anderen Wert an. In diesem Fall werden die Werte von 0 bis 5 ausgegeben, wobei 5 nicht mit eingeschlossen ist.
%% Cell type:markdown id: tags:
Häufig benötigt man for-Schleifen, um <b>Listen</b> zu durchlaufen (<i>iterieren</i>). Z.B. eine Liste mit Strings oder eine Liste mit Zahlen oder auch gemischte Listen.
%% Cell type:code id: tags:
``` python
obst = ["Apfel", "Banane", "Birne", "Weintraube"] #Eine Liste. Beachten Sie die eckigen Klammern!
for x in obst:
print(x)
```
%% Output
Apfel
Banane
Birne
Weintraube
%% Cell type:markdown id: tags:
Wie Sie sich sicher denken können, ist auch x hier eine Variable. Und auch sie nimmt pro Durchlauf einen anderen Wert an. Hier sind aber keine Zahlen-Limits vorgegeben, sondern eine Liste mit 4 Werten, die bis zu ihrem Ende durchlaufen wird. Die Länge der Liste kann man sich mit <b>len()</b> übrigens auch explizit ausgeben lassen und die Schleife alternativ so formulieren:
%% Cell type:code id: tags:
``` python
obst = ["Apfel", "Banane", "Birne", "Weintraube"]
for i in range(0, len(obst)):
print(obst[i])
```
%% Output
Apfel
Banane
Birne
Weintraube
%% Cell type:markdown id: tags:
Allerdings ist die Version oben deutlich bequemer zu schreiben.
Wie an diesem Beispiel auch zu erkennen ist, greift man auf ein Element an einer bestimmmten Stelle in der Liste mithilfe eckiger Klammern und dem entsprechenden Index zu:
Wie an diesem Beispiel auch zu erkennen ist, greift man auf ein Element an einer bestimmten Stelle in der Liste mithilfe eckiger Klammern und dem entsprechenden Index zu:
%% Cell type:code id: tags:
``` python
print(obst[1])
```
%% Output
Banane
%% Cell type:markdown id: tags:
Warum wird hier nicht "apfel" ausgegeben, obwohl wir das 1. Element angegeben haben?
Warum wird hier nicht "Apfel" ausgegeben, obwohl wir das 1. Element angegeben haben?
Das liegt daran, dass in der Programmierung immer von 0 an gerechnet wird. Das erste Element einer Liste ist also Element 0:
%% Cell type:code id: tags:
``` python
print(obst[0])
```
%% Output
Apfel
%% Cell type:markdown id: tags:
Man kann übrigens auch vom Ende der Liste starten und rückwärts zählen, z.B.:
%% Cell type:code id: tags:
``` python
print(obst[len(obst)-1])
```
%% Output
Weintraube
%% Cell type:markdown id: tags:
Achtung: Das -1 ist wichtig, denn <i>len(obst)</i> gibt in diesem Fall ja 4 zurück. Wenn wir aber mit 0 zu zählen anfangen, steht "Weintraube" an Stelle 3 und nicht an Stelle 4. Einen Listeneintrag mit Index 4 gibt es nicht, wir würden also einen Fehler erhalten.
%% Cell type:markdown id: tags:
Wenn man an eine Liste einen neuen Eintrag anhängen will, verwendet man <b>append()</b>:
%% Cell type:code id: tags:
``` python
obst.append("Mandarine")
print(obst)
```
%% Output
['Apfel', 'Banane', 'Birne', 'Weintraube', 'Mandarine']
%% Cell type:markdown id: tags:
Ebenfalls häufig verwendet werden <b>Dictionaries</b>. Hiermit speichert man "Key-Value-Pairs", also einen Schlüsselbegriff und einen zugehörigen Wert. Beispiel:
%% Cell type:code id: tags:
``` python
vorrat = {"Apfel": 4, "Banane": 3, "Weintraube": 24} #geschweiften Klammern und Anführungszeichen beachten!
vorrat = {"Apfel": 4, "Banane": 3, "Weintraube": 24} #geschweifte Klammern und Anführungszeichen beachten!
anzahl_apfel = vorrat["Apfel"] #greife auf den Wert (value) des Schlüssels (key) "Apfel" zu
print("Es sind noch "+ str(anzahl_apfel) + " Äpfel verfügbar.")
```
%% Output
Es sind noch 4 Äpfel verfügbar.
%% Cell type:markdown id: tags:
Dictionaries können nachträglich verändert werden:
%% Cell type:code id: tags:
``` python
vorrat = {"Apfel": 4, "Banane": 3, "Weintraube": 24}
print("Bananen: "+str(vorrat["Banane"])) #Noch gibt es Bananen...
vorrat["Banane"] = 0 #Jetzt nicht mehr!
print("Bananen: "+str(vorrat["Banane"]))
```
%% Output
Bananen: 3
Bananen: 0
%% Cell type:markdown id: tags:
Man kann auch ein ganz neues Dictionary anlegen und nach und nach auffüllen:
%% Cell type:code id: tags:
``` python
apfel = {}
apfel["art"] = "Granny Smith"
apfel["herkunft"] = "Australien"
apfel["anzahl"] = 5
print(apfel)
```
%% Output
{'art': 'Granny Smith', 'herkunft': 'Australien', 'anzahl': 5}
%% Cell type:markdown id: tags:
Und man kann sich auch nur die Keys oder nur die Values ausgeben lassen:
%% Cell type:code id: tags:
``` python
print(apfel.keys())
print(apfel.values())
```
%% Output
dict_keys(['art', 'herkunft', 'anzahl'])
dict_values(['Granny Smith', 'Australien', 5])
%% Cell type:markdown id: tags:
Oder Zeile für Zeile:
%% Cell type:code id: tags:
``` python
for v in apfel.values():
print(v)
```
%% Output
Granny Smith
Australien
5
%% Cell type:markdown id: tags:
<b>Tipp: Sie haben nun das benötigte Wissen, um Übung 2 im Übungsordner zu bearbeiten.</b>
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment