Zum Inhalt

01 - Skripting

Das erste Skript

Bisher haben wir nur mit dem interaktiven Prompt >>> gearbeitet. Nun wollen wir ein Skript schreiben, dass wir später ausführen können.

Dazu öffnen wir einen Texteditor oder eine IDE und erzeugen eine neue Datei.

In diese Datei schreiben wir folgenden Code:

hallo.py
print("Hallo Welt")

Anschließend wird die Datei mit dem Namen hallo.py gespeichert und ausgeführt. Eine IDE bietet dir die Möglichkeit den Code direkt auszuführen. Solltest du einen Texteditor verwendet haben, musst du die Datei in der Kommandozeile ausführen. Dazu wechselst du in das Verzeichnis in dem du die Datei gespeichert hast und gibst python hallo.py ein.

python hallo.pyHallo Welt

Das wirkt jetzt alles noch nicht so wirklich spannend, aber das wird sich noch ändern.

Nun wollen wir unser Skript etwas erweitern. Dazu schreiben wir folgenden Code in unsere Datei:

hallo.py
1
2
3
4
5
6
7
print("Hallo Welt")

a = 1
b = 2
c = a + b

print(c)
Überleg dir was passiert, wenn du das Skript ausführst. Gehe dazu Zeile für Zeile vor. Anschließend kannst du überprüfen ob du richtig liegst.
1
2
3
4
5
6
7
Gebe "Hallo Welt" aus

Weise der Variable a den Wert 1 zu
Weise der Variable b den Wert 2 zu
Weise der Variable c den Wert von a + b zu

Gebe den Wert von c aus

Vielleicht hast du schon festgestellt, dass ein Skript prinzipiell von oben nach unten ausgeführt wird.

Nimm dir etwas Zeit und probiere auch die schon bekannten Befehle aus. Schaue was passiert, wenn du die Zeilen in einer anderen Reihenfolge anordnest.

Kommentare

In Python ist es auch möglich Kommentare im Quelltext (dein Skript) zu platzieren. Diese werden beim Ausführen ignoriert und dienen zu der Dokumentation deines Codes. Kommentare werden mit # eingeleitet und gehen dann bis zum Ende der Zeile.

test.py
1
2
3
4
5
6
print("Hallo Welt")   # gibt Hallo Welt aus

# Es ist auch möglich 
# längere Kommentare und
# in leere Zeilen
# zu schreiben
python test.pyHallo Welt

Komplexe Datentypen

Bisher haben wir nur mit einfachen Datentypen gearbeitet. Nun wollen wir uns mit komplexeren Datentypen beschäftigen. Diese sind list, tuple, dictionary und set.

list

Eine Liste ist eine geordnete Sammlung von Elementen. Diese Elemente können unterschiedliche Datentypen sein. Eine Liste wird mit eckigen Klammern [] erzeugt. Die einzelnen Elemente werden mit einem Komma , getrennt.

list.py
1
2
3
a = [1, 2, 3, 4, 5]
b = ["a", "b", "c", "d", "e"]
c = [1, "a", 2, "b", 3, "c", 4, "d", 5, "e"]

Anschließend können wir auf die einzelnen Elemente zugreifen. Dazu verwenden wir den Index des Elements. Der Index beginnt bei 0. Das erste Element hat also den Index 0, das zweite den Index 1 und so weiter. Der Index wird in eckigen Klammern [] hinter den Namen der Liste geschrieben.

list.py
1
2
3
a = [1, 2, 3, 4, 5]
print(a[0])
print(a[1])
Überleg dir was passiert, wenn du das Skript ausführst. Gehe dazu Zeile für Zeile vor. Anschließend kannst du überprüfen ob du richtig liegst.
1
2
3
4
Weise der Variable a die Liste [1, 2, 3, 4, 5] zu

Gebe das Element mit dem Index 0 aus (1)
Gebe das Element mit dem Index 1 aus (2)

tuple

Ein Tuple ist eine geordnete Sammlung von Elementen. Diese Elemente können unterschiedliche Datentypen sein. Ein Tuple wird mit runden Klammern () erzeugt. Die einzelnen Elemente werden mit einem Komma , getrennt.

tuple.py
1
2
3
a = (1, 2, 3, 4, 5)
b = ("a", "b", "c", "d", "e")
c = (1, "a", 2, "b", 3, "c", 4, "d", 5, "e")

Anschließend können wir auf die einzelnen Elemente zugreifen. Dazu verwenden wir den Index des Elements. Der Index beginnt bei 0. Das erste Element hat also den Index 0, das zweite den Index 1 und so weiter. Der Index wird in eckigen Klammern [] hinter den Namen des Tuples geschrieben.

tuple.py
1
2
3
a = (1, "a", 2, "b", 3, "c", 4, "d", 5, "e")
print(a[0])
print(a[7])
Überleg dir was passiert, wenn du das Skript ausführst. Gehe dazu Zeile für Zeile vor. Anschließend kannst du überprüfen ob du richtig liegst.
1
2
3
4
Weise der Variable a das Tuple (1, "a", 2, "b", 3, "c", 4, "d", 5, "e") zu

Gebe das Element mit dem Index 0 aus (1)
Gebe das Element mit dem Index 7 aus (d)

dictionary

Ein Dictionary ist eine Sammlung von Elementen. Diese Elemente können unterschiedliche Datentypen sein. Ein Dictionary wird mit geschweiften Klammern {} erzeugt. Die einzelnen Elemente werden mit einem Komma , getrennt. Ein Element besteht aus einem Schlüssel und einem Wert. Der Schlüssel wird durch einen Doppelpunkt : vom Wert getrennt.

dictionary.py
1
2
3
4
a = {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}

print(a["a"])
print(a["d"])
Überleg dir was passiert, wenn du das Skript ausführst. Gehe dazu Zeile für Zeile vor. Anschließend kannst du überprüfen ob du richtig liegst.
1
2
3
4
Weise der Variable a das Dictionary {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5} zu

Gebe den Wert des Schlüssels "a" aus (1)
Gebe den Wert des Schlüssels "d" aus (4)

set

Ein Set ist eine ungeordnete Sammlung von Elementen. Diese Elemente können unterschiedliche Datentypen sein. Ein Set wird mit geschweiften Klammern {} erzeugt. Die einzelnen Elemente werden mit einem Komma , getrennt.

set.py
a = {1, "Hallo", 3.14, True}

Anschließend können wir auf die einzelnen Elemente zugreifen. Dazu verwenden wir den Index des Elements. Der Index beginnt bei 0. Das erste Element hat also den Index 0, das zweite den Index 1 und so weiter. Der Index wird in eckigen Klammern [] hinter den Namen des Sets geschrieben.

set.py
1
2
3
a = {1, "Hallo", 3.14, True}
print(a[0])
print(a[1])
Überleg dir was passiert, wenn du das Skript ausführst. Gehe dazu Zeile für Zeile vor. Anschließend kannst du überprüfen ob du richtig liegst.
1
2
3
4
Weise der Variable a das Set {1, "Hallo", 3.14, True} zu

Gebe das Element mit dem Index 0 aus (1)
Gebe das Element mit dem Index 1 aus (Hallo)

Schleifen

In Python gibt es zwei arten von Schleifen. Die while-Schleife und die for-Schleife.

while

Die while-Schleife wird solange ausgeführt, wie die Bedingung wahr ist.

while.py
1
2
3
4
5
a = 0

while a < 3:
    print(a)
    a = a + 1
Überleg dir was passiert, wenn du das Skript ausführst. Gehe dazu Zeile für Zeile vor. Anschließend kannst du überprüfen ob du richtig liegst.
1
2
3
4
5
Weise der Variable a den Wert 0 zu

Solange a kleiner als 3 ist:
    Gebe den Wert von a aus
    Weise der Variable a den Wert von a + 1 zu

for

Die for-Schleife wird für jedes Element in einer Liste, einem Tuple, einem Dictionary oder einem Set ausgeführt.

for.py
1
2
3
4
a = [1, 2, 3, 4, 5]

for i in a:
    print(i**2)

Die Variable i enthält in jedem Durchlauf der Schleife ein Element aus der Liste a. In diesem Fall wird die Schleife also 5 mal ausgeführt. Im ersten Durchlauf enthält i den Wert 1, im zweiten Durchlauf den Wert 2, im dritten Durchlauf den Wert 3, im vierten Durchlauf den Wert 4 und im fünften Durchlauf den Wert 5.

Überleg dir was passiert, wenn du das Skript ausführst. Gehe dazu Zeile für Zeile vor. Anschließend kannst du überprüfen ob du richtig liegst.
1
2
3
4
Weise der Variable a die Liste [1, 2, 3, 4, 5] zu

Für jedes Element i in der Liste a:
    Gebe das Quadrat von i aus

Verzweigungen

Bisher haben wir nur kurze Skripte geschrieben, die von oben nach unten ausgeführt werden, oder Schleifen, die solange ausgeführt werden, wie eine Bedingung wahr ist. Nun wollen wir uns mit Verzweigungen beschäftigen. Diese werden verwendet, um den Programmablauf zu steuern.

if

Die if-Verzweigung wird ausgeführt, wenn die Bedingung wahr ist.

if.py
1
2
3
4
5
a = (1, 2, 3, 4, 5)

for i in a:
    if i % 2 == 0:
        print(i)

Hier kombinieren wir schon einige gelernte Elemente. Die Variable a enthält ein Tuple mit den Zahlen von 1 bis 5. In der for-Schleife wird für jedes Element des Tupels überprüft, ob es gerade ist. Dazu wird der Modulo-Operator % verwendet. Dieser gibt den Rest einer Division zurück. Wenn der Rest 0 ist, ist die Zahl gerade. Anschließend wird die Zahl ausgegeben.

if - else

Die if-Verzweigung wird ausgeführt, wenn die Bedingung wahr ist. Die else-Verzweigung wird ausgeführt, wenn die Bedingung falsch ist.

if_else.py
1
2
3
4
5
6
7
8
9
a = (1, 2, 3, 4, 5)

for i in a:
    if i % 2 == 0:
        print("gerade:")
        print(i)
    else:
        print("ungerade:")
        print(i)

if - elif - else

Manchmal wollen wir mehr als zwei Verzweigungen nutzen. Dazu können wir die eben genutzte if - else-Verzweigung erweitern. Die elif-Verzweigung wird ausgeführt, wenn die Bedingung wahr ist. Die else-Verzweigung wird ausgeführt, wenn keine der Bedingungen wahr ist. Die else-Verzweigung ist optional und kann weggelassen werden. Die #python elif-Verzweigung kann beliebig oft wiederholt werden.

if_elif_else.py
a = (1, 2, 3, 4, 5)

for i in a:
    if i % 2 == 0:
        print("gerade:")
        print(i)
    elif i % 3 == 0:
        print("durch 3 teilbar:")
        print(i)
    else:
        print("ungerade und nicht durch 3 teilbar:")
        print(i)

Eingaben

Wir wollen ein Programm schreiben, das den Benutzer nach seinem Namen fragt und ihn dann begrüßt. Dazu verwenden wir die Funktion input. Diese Funktion erwartet einen String als Argument, der als Frage an den Benutzer angezeigt wird. Der Benutzer kann dann eine Eingabe machen, die als String zurückgegeben wird. Wir speichern diese Eingabe in einer Variable und geben sie dann aus.

name.py
name = input("Wie heißt du? ")
print("Hallo " + name)
python name.pyWie heißt du? Christof
Hallo Christof

Ist dir aufgefallen das die print-Anweisung etwas ungewohnt aussieht? Wir haben hier zwei Strings mit dem +-Operator verknüpft. Das ist in Python möglich, aber nicht in allen Programmiersprachen. Ein String kann mit einem anderen String verknüpft werden, aber nicht mit einem Integer oder Float. Versuche es mal mit 1 + "1". Eine andere Möglichkeit ist es, die print-Funktion mit mehreren Argumenten aufzurufen. Die Argumente werden dann mit einem Leerzeichen getrennt und ausgegeben.

print("Hallo", name)