Programmieren I - Variablen & Operatoren

Die Einführungsfolien finden sie hier.

Setup

Bevor wir mit den praktischen Aspekten beginnen, müssen wir die Programmierumgebung einrichten. Dazu werden wir die folgenden Softwarekomponenten verwenden:

  • Python 3
  • Pipenv
  • Homebrew (nur OS X, siehe unten)
  • Atom (nur eine Empfehlung, ein beliebiger anderer Editor mit Code-Highlighting geht auch)

Linux

In der Linuxumgebung in den PC Räumen sind alle notwendigen Programme bereits installiert. Falls sie ihren eigenen PC nutzen wollen, sollte dort Python 3 bereits vorinstalliert sein. Dann installieren sie Pipenv mit folgendem Befehl:

$ pip install --user pipenv

Danach editieren sie die .profile und fügen am Ende folgende Zeile ein, damit die Pipenv auf der Konsole gefunden wird:

if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

OS X

OS X liefert standardmäßig eine relativ alte Python Version aus. Daher müssen wir unsere eigene Python 3 Version installieren. Die einfachste Methode dazu ist über den Homebrew packet-manager, welchen sie mittels der Anleitung hier installieren.

Sie brauchen zustäzlich auch noch die Command Line Tools (CLT) for Xcode: xcode-select --install, verfügbar unter https://developer.apple.com/downloads.

Windows

Unter Windows nutzen sie bitte die Installationsanleitungen der jeweiligen Programme.

Die Entwicklungsumgebung

Bevor wir mit dem Programmieren beginnen können, müssen wir unsere Entwicklungsumgebung einrichten. Dazu erstellen sie dort wo sie all den Code dieses Moduls speichern wollen ein neues Verzeichnis.

Dann öffnen sie eine Konsole und navigieren in dieses Verzeichnis. Zum Navigieren auf der Konsole nutzen sie den Befehl cd <Verzeichnisname>. Wenn sie nicht wissen, welche Verzeichnise aktuell verfügbar sind, dann nutzen sie ls um sich eine Liste anzeigen zu lassen.

Wenn sie in dem neuen Verzeichnis sind, führen sie folgenden Befehl aus um die Entwicklungsumgebung zu initialisieren:

$ pipenv shell

Diesen Befehl müssen sie jedesmal wenn sie für das Modul programmieren wollen in dem Verzeichnis ausführen.

Als letzten Schritt starten sie ihren Editor und öffnen das neu angelegte Verzeichnis. Unter Atom geht das über "Datei" -> "Projektverzeichnis hinzufügen".

Das erste Programm

In unserem ersten Programm werden wir mit einfachen Zahlen arbeiten. Erstellen sie in ihrem Projektverzeichnis daher eine neue Datei zahlen.py und fügen dann den folgenden Code ein:

a = 0

Wir können das Programm jetzt ausführen, in dem sie auf der Kommandozeile folgenden Befehl ausführen:

python zahlen.py

Wenn das Programm erfolgreich läuft, dann werden sie einfach nichts sehen, weil es bis jetzt noch nichts sichtbares macht. Fügen wir daher etwas Output hinzu. Aktualiseren sie die Datei damit sie wie folgt aussieht:

a = 0
print(a)

Wenn sie jetzt das Programm erneutz ausführen, dann werden sie sehen, dass es die Zahl 0 auf der Kommandozeile ausgiebt.

Wenn wir uns dieses kleine Programm jetzt im Detail ansehen, dann sehen wir hier die ersten Kernkonzepte der Programmierung. In der ersten Zeile sehen wir zuerst den Text a, dann das Gleichheitszeichen = und dann die Zahl 0. Der Text a wird als "Variable" bezeichnet. Eine Variable erlaubt es uns Information und Zustand im Programm zu speichern. Der Text wird als Variablenname bezeichnet (hier eben "a"). Das einzelne Gleichheitszeichen hat in der Programmierumg eine besondere Aufgabe. Es definiert, dass das Ergebnis der rechten Seite (in diesem Fall 0) in der Variable auf der linken Seite zugewiesen wird. In diesem Fall ist die rechte Seite sehr einfach und daher wird einfach der Wert 0 in der Variable gespeichert.

Die zweite Zeile demonstriert ein weiteres, zentrales Konzept, den sogenannten Funktionsaufruf. Funktionen sind kleine Teilprogramme, die eine gewisse Funktion bereitstellen, welche wir an dieser Stelle in unseren Code einbauen. Die Details dazu werden später besprochen. Hier nur das wichtigste. Funktionen haben einen Namen, hier print. Nach dem Namen kommt eine öffnende runde Klammer, dann kommen die sogenannten Parameter, und am Ende kommt eine schließende runde Klammer. Die print Funktion erwartet einen Parameter, welcher dann von der Funktion auf der Kommandozeile ausgegeben wird. In diesem Fall ist dass die Variable a und die print Funktion gibt daher den Inhalt der Variable auf der Kommandozeile aus. Sie können das ausprobieren, indem sie die Zahl, welche in der Variable a gespeichert wird verändern und dann das Programm erneut ausführen und die Ausgabe beachten.

Wir können in unserem Programm beliebig viele Variablen definieren. Probieren wir das aus, indem wir eine zweite Variable b deffinieren:

a = 0
b = 1
print(a)

Wenn sie das Programm jetzt ausführen, werden sie sehen, dass sich nichts sichtbar verändert. Wir könnten natürlich die Variable b auch über ein print ausgeben, aber dadurch wird das Programm nicht fähiger.

Operatoren

Um in unserem Programm etwas komplexeres zu machen, müssen wir die Variablen miteinander verknüpfen können. Dazu benötigen wir die sogenannten Operatoren. Operatoren nehmen ein oder mehrere Parameter und verknüpfen diese zu einem neuen Ergebnis. Aktualiseren sie ihren Code, so dass er wie folgt aussieht (auf das print(c) achten):

a = 0
b = 1

c = a + b

print(c)

Die neue Zeile demonstriert den + Operator, welcher zwei Zahlen zusammenadiert. Wenn der Code jetzt ausgeführt wird, dann in der neuen Zeile zuerst die Befehle auf der rechten Seite des = ausgeführt, es werden also die Werte der Variablen a und b zusammenadiert. Dies ergiebt einen neuen Wert und dieser wird dann in der neuen Variable c gespeichert.

Probieren sie das Programm aus und versuchen sie dann die Werte von a und b zu ändern, um zu sehen wie sich das Programm verhält.

Zusätzlich zum + gibt es noch vier weitere Operatoren die häufig genutzt werden:

  • - - zieht den Wert des zweiten Parameters vom Wert des ersten Parameters ab
  • * - multipliziert die zwei Parameterwerte zusammen
  • / - dividiert den ersten Parameter durch den zweiten Parameter
  • % - berechnet den ganzzahligen Rest der Division des ersten durch den zweiten Parameter.

Probieren sie jetzt die verschiedenen Operatoren aus. Legen sie dafür weitere Variablen d, e, f, und g an, welche das Ergebnis der Verwendung des jeweiligen Operators mit den zwei Eingabevariablen a und b speichert. Vergessen sie nicht, die neuen Variablen auch mittels print auszugeben, damit sie sehen, dass ihr Code auch wirklich funktioniert.

Bei der Division werden sie sehen, dass wenn es kein ganzzahliges Ergebnis gibt, ein Fließkommaergebnis ausgegeben wird. In Python müssen sie sich um die Unterscheidung zwischen diesen zwei Zahlenarten nicht kümmern, das erledigt automatisch die Programmiersprache für sie.

Text

Neben numerischen Daten ist Text die häufigste Datenform. Um mit Text ein bischen zu spielen, erstellen sie eine neue Datei text.py und fügen diese Inhalt ein:

hamlet = 'To be or not to be'
print(hamlet)

Sie sehen, dass im Grunde genommen der Code für Text genau gleich funktioniert wie der für Zahlen. Der einzige Unterschied ist, dass Textwerte, welche im Programmierjargon als "String" bezeichnet werden, innerhalb von Anführungszeichen stehen müssen. In Python kann man dazu sowohl einzelne wie auch doppelte Anführungszeichen nutzen. Sie können das ausprobieren, indem sie den Code wie folgt adaptieren:

hamlet = 'To be or not to be'
print(hamlet)

hamlet = "To be or not to be"
print(hamlet)

Sie werden sehen, dass der Text jetzt einfach zweimal ausgegeben wird, die zwei Formen sind also komplett austauschbar. Nur wenn man ein Anführungszeichen als Text selbst haben will, dann muss man das jeweils andere verwenden:

hamlet = 'Der Totengräber sagt "To be or not to be"'
print(hamlet)

hamlet = "Hamlet's death"
print(hamlet)

Operatoren

Anders als bei den Zahlen, wird für Strings eigentlich nur ein Operator verwendet und zwar das + welches zwei Strings zusammenfügen:

polonius = 'Polonius: '
truth = 'To thine own self be true'

dialog_zeile = polonius + truth

print(dialog_zeile)

Wenn sie dieses Programm jetzt ausführen, werden sie sehen, dass die zwei Strings aneinandergefügt werden. Wichtig ist hierbei zu bemerken, dass der Computer die Strings als Listen bedeutungsfreier Zeichen sehen. Bei der Ausführung werden daher auch keine zusätzlichen Leerzeichen oder ähnliches eingefügt. Sie können das ausprobieren, indem sie das Leerzeichen am Ende des 'Polonius: ' Strings entfernen.

Es gibt zwar keine weiteren häufigen Operatoren, aber eine Aktivität, welche mit Strings oft durchgeführt wird, ist einen Teilstring zu extrahieren:

polonius = 'Polonius: '
truth = 'To thine own self be true'

dialog_zeile = polonius + truth

print(dialog_zeile)

sprecher = dialog_zeile[0:8]

print(sprecher)

Um Teile von Strings zu extrahieren, nutzwen wir die Notation mit den eckigen Klammern. Dabei ist die erste Zahl die Stelle im String die im extrahierten String inkludiert ist und die zweite Zahl die Stelle im String ab der der Text nicht mehr im extrahierten String inkludiert wird. Führen sie das Programm aus und probieren sie dann ein paar unterschiedlicher Werte.

Übungen

Probieren sie die folgenden Übungsaufgaben selbstständig aus. Erstellen sie dazu ein neues Verzeichnis "uebungen_1" und legen darin für jede Aufgabe eine eigene Datei an.

Aufgabe 1

Erstellen sie eine neue Datei aufgabe_1.py und schreiben sie den notwendigen Code um eine Variable x mit dem Wert 12 und eine Variable y mit dem Wert 4 anzulegen. Dann erzeugen sie eine neue Variable z, welche die Summe der zwei Variablen x und y beinhaltet. Geben sie das Ergebnis dann aus.

Aufgabe 2

Erstellen sie eine neue Datei aufgabe_2.py und schreiben sie den notwendigen Code um eine Variable x mit dem Wert 4 und eine Variable y mit dem Wert 12 anzulegen. Dann erzeugen sie eine neue Variable z, welche die Differenz zwischen den zwei Variablen x und y beinhaltet. Geben sie das Ergebnis dann aus.

Aufgabe 3

Erstellen sie eine neue Datei aufgabe_3.py und schreiben sie den notwendigen Code um eine Variable x mit dem Wert 12 und eine Variable y mit dem Wert 4 anzulegen. Dann erzeugen sie eine neue Variable z, welche das Produkt der zwei Variablen x und y beinhaltet. Geben sie das Ergebnis dann aus.

Aufgabe 4

Erstellen sie eine neue Datei aufgabe_4.py und schreiben sie den notwendigen Code um eine Variable x mit dem Wert 12 und eine Variable y mit dem Wert 4 anzulegen. Dann erzeugen sie eine neue Variable z, welche die Division der zwei Variablen x und y beinhaltet. Geben sie das Ergebnis dann aus.

Aufgabe 5

Erstellen sie eine neue Datei aufgabe_5.py und schreiben sie den notwendigen Code um eine Variable x mit dem Wert 12 und eine Variable y mit dem Wert 7 anzulegen. Dann erzeugen sie eine neue Variable z, welche den ganzzahligen Rest der Division der zwei Variablen x und y beinhaltet. Geben sie das Ergebnis dann aus.

Aufgabe 6

Erstellen sie eine neue Datei aufgabe_6.py und fügen sie den folgenden Code ein:

a = 16
b = 5
c = 7

print(d)

Dann fügen sie den notwendigen Code ein, um die Variable d anzulegen. Nutzen sie dann mehrere Operatoren zusammen und aus den drei Variablen a, b, und c den Wert 73 zu berechnen und weisen diesen der Variable d zu.

Aufgabe 7

Erstellen sie eine neue Datei aufgabe_7.py und fügen sie den notwendigen Code ein um eine neue Variable x mit dem Text "Hallo!" anzulegen und auszugeben.

Aufgabe 8

Erstellen sie eine neue Datei aufgabe_8.py und fügen sie den notwendigen Code ein um eine neue Variable x mit dem Wer "Hallo" und eine Variable y mit dem Wert "Welt" anzulegen. Dann kombinieren sie diese zwei Variablen und geben das Ergebnis aus.

Aufgabe 9

Erstellen sie eine neue Datei aufgabe_9.py und fügen sie den folgenden Code ein:

name = 'Maria'

Dann fügen sie den notwendigen Code hinzu, damit der Text "Hallo, Maria" ausgegeben wird.

Aufgabe 10

Erstellen sie eine neue Datei aufgabe_10.py und fügen sie den notwendigen Code ein, um aus dem Text "All the world ‘s a stage, and all the men and women merely players. They have their exits and their entrances; And one man in his time plays many parts." die Texte "men" und "women" in zwei Variablen x und y zu extrahieren und auszugeben.