Der Python-Kurs: Anweisungen und Variablen
Willemers Informatik-Ecke
Werkzeuge Python-Kurs Abfrage if

Ein Computer wird oft als Rechner bezeichnet. Und das passt schon, denn den Beruf des Computers gab es wirklich in früheren Jahrhunderten. Ein Computer arbeitete beispielsweise für einen Ingenieur und rechnete Formeln mit verschiedenen Zahlenwerten durch. Das ist langweilig und fehleranfällig. Darum träumten Babbage und Zuse von einer Maschine, der man Formeln einprogrammieren konnte. Dann könnte man immer wieder neue Zahlenwerte eingeben und der Computer liefert das Ergebnis.

Daraus wurde natürlich mehr. Aber erst einmal wollen wir Python nutzen, um diesen Traum zu realisieren. Wir programmieren ein paar einfache Formeln ein.

Ein einfaches Programm

Rein, Raus: inout.py

Python-Programme werden typischerweise in Dateien abgelegt, die auf .py enden. Solche Programme können Sie einmal schreiben und immer wieder starten. Wählen Sie einen Editor und erstellen Sie die Datei inout.py. Dort geben Sie folgendes ein:

variable = input("Gebe Deinen Namen ein: ")
print(variable)

In der ersten Zeile wird mit der Funktion input eine Eingabe vom Benutzer erbeten. Dabei wird der Text in Anführungszeichen ausgegeben, damit der Benutzer weiß, was das Programm von ihm will.

Links vom Gleichheitszeichen steht eine Variable, die der Deutlichkeit halber auch gleich variable heißt. Das Gleichheitszeichen ist eigentlich ein Zuweisungszeichen und steckt das, was ihm input liefert in die Variable hinein.

In der nächsten Zeile druckt die Funktion print den Inhalt der Variablen auf dem Bildschirm aus. Es müsste also der eingegebene Namen erscheinen.

Das Programm ist fertig und es muss gestartet werden. Dazu rufen Sie den Interpreter (je nach System) mit python oder python3 gefolgt vom Dateinamen. Hinter die Aufforderung geben Sie den Namen ein. In meinem Fall sieht das so aus:

$ python3 inout.py 
Gebe Deinen Namen ein: Arnold
Arnold
$
Durch einen erneuten Start können Sie einen anderen Namen probieren.

Polynom

Nun wollen wir eine Formel programmieren und diese mit verschiedenen Werten durchspielen, also das, was Babbage und Zuse gewollt haben.

Der Mathematiklehrer will eine Kurvendiskussion des folgenden Polynoms:

y = x2 + 2x - 1

Die Berechnung muss zwischen die Ein- und die Ausgabe gesteckt werden. Dabei müssen ein paar Besonderheiten berücksichtigt werden.

eingabe = input("X-Wert: ")
x = eval(eingabe)
y = x*x + 2*x - 1
print(y)

Nun kann man das Programm wiederholt starten und kann jedes Mal ein neues x eingeben und erhält das passende y.

Programm mit IDE-Unterstützung

Erzeugen Sie ein Verzeichnis auf Ihrem Computer. Wechseln Sie in dieses Verzeichnis und starten Sie dort Visual Studio Code. Unter Linux lauten sie Befehle dafür:
mkdir kurs
cd kurs
code .
Mit [Strg]+[N] erzeugen Sie eine neue Textdatei. Es erscheint ein kurzer Text. Klicken Sie dort auf Sprache auswählen. Wählen Sie Python und nun können Sie Ihr Programm eintippen.

Als Beispiel berechnen wir die Kosten für das Fahren mit dem Auto pro Kilometer. Dazu benötigen Sie eine Variable für den Verbrauch Ihres Autos, gehen wir von 7,5 Litern auf 100 km aus. Dann weisen Sie der Variablen verbrauch 7.5 zu.

Als Dezimaltrenner muss ein Punkt verwendet werden, weil die angelsächsische Welt einen Punkt anstelle eines Kommas verwendet. Und die waren wieder einmal schneller als wir.

Nun weisen Sie einer weiteren Variablen preis den Wert für den Preis für einen Liter Sprit zu, nehmen wir mal optimistisch 1,92 an.

Dann rechnen wir den Preis mal dem Verbrauch und teilen ihn durch 100, weil uns nur ein Kilometer interessiert. Das Ergebnis weisen wir der Variablen kostenprokm und geben diese anschließend aus.

verbrauch = 7.5
preis = 1.92
kostenprokm = verbrauch * preis / 100
print(kostenprokm)
Nun tippen Sie [Strg]+[S] oder wählen Sie aus dem Menü Datei|Speichern.., um die Datei zu sichern. Eine Dateiauswahlbox fragt Sie nach einem Dateinamen. Geben Sie verbrauch.py ein.

Sie sehen nun die Datei verbrauch.py im Explorer von VSC und können diese mit der Taste [F5] starten. Unter dem Editor erscheint ein Terminal. Darin sollte die Lösung 0.144 erscheinen.

Im Terminal können Sie den Interpreter auch direkt starten:

python3 verbrauch.py

Sie können nun die Werte im Programm an ein anderes Auto anpassen und testen. Das geht sogar mit Elektroautos. Ein durchschnittlicher PKW verbraucht 15 kWh auf 100 km und der Strom aus der Steckdose kostet ca 0,4 Euro. Probieren Sie es aus!

Verbrauch und Preis eingeben

Nun wollen Sie nicht jedes Mal das Programm ändern, wenn Sie ein neues Auto ausprobieren wollen. Dafür wurde die Funktion input geschaffen. In deren Parameterklammer wird der Text geschrieben, die der Anwender sehen soll - in Anführungszeichen natürlich, weil es ein Text ist.

Das Ergebnis von input wird einer Variable zugewiesen. Diese enthält dann einen Text, weil Sie ja Buchstaben und Ziffern eintippen. Um aus dieser Zeichenkette eine Zahl zu machen, können Sie die Funktion eval verwenden.

vstr = input("Verbrauch pro 100 km: ")
verbrauch = eval(vstr)
Beim Preis können Sie alles in eine Zeile packen und sparen dabei sogar eine Variable:

preis = eval(input("Preis: "))
Wenn Sie nun das Programm starten, geben Sie erst 7.5 und dann 1.92 ein und Sie sollten dasselbe Ergebnis wie im Programm zuvor erhalten. Zusammen sieht das Programm so aus:

vstr = input("Verbrauch pro 100 km: ")
verbrauch = eval(vstr)
preis = eval(input("Preis: "))
kostenprokm = verbrauch * preis / 100
print(kostenprokm)
Ach ja: Geben Sie bitte nur Zahlen ein, sonst ist Python beleidigt und stürzt ab.

Anweisungen

Python-Anweisungen stehen normalerweise in einer Zeile. Mehrere Anweisungen können in einer Zeile stehen, wenn sie durch Semikolen getrennt sind, was aber vermieden werden sollte. Lange Zeilen können umbrochen werden, wenn ein Backslash ans Ende gesetzt wird. Ist eine Klammerung noch nicht abgeschlossen, erkennt Python, dass die Anweisung noch nicht zu Ende ist und setzt sie automatisch in der Folgezeile fort.

Variablen

Wir haben in dem ersten Programm ja nun schon einige Variablen verwendet. Ein Programm speichert seine Daten in Variablen. Jede Variable hat einen Namen, über den ihr Inhalt angesprochen wird. Der Inhalt kann eine Zahl oder ein Text seind. Im Laufe des Kurses werden wir nach andere Variablentypen kennenlernen.

Ein Variablenname wird aus Buchstaben, Ziffern und Unterstrichen zusammengesetzt. Allerdings darf der Name nicht mit einer Ziffer beginnen. Groß- und Kleinschreibung ist bei den Variablennamen signifikant. Maus ist also nicht gleich maus und nicht gleich MAUS.

Welchen Typ eine Variable hat, ob sie also Zahlen oder Texte enhält, wird durch eine Zuweisung entschieden. Bei Python spricht man gern vom Duck-Typing.

Im folgenden Beispiel wird der Variablen zahl der Wert 12 zugewiesen. Der Typ der Variablen ist nun int (ganzzahlig).

zahl = 12

Welchen Typ eine Variable hat, kann durch die Funktion type festgestellt werden. Bei den Zahlen sind dies int für ganze Zahlen oder float für Fließkommazahlen. Das kann man im Interpreter sehr schön sehen:

>>> type(a)
<class 'int'>
>>> type(a/3)
<class 'float'>
>>> type(a//3)
<class 'int'>
Man sieht hier, dass der Typ den Notwendigkeiten angepasst wird. Die Division wird durch einen Schrägstrich erreicht. Damit entsteht ein Bruch, der im Deutschen als Fließkommazahl bezeichnet wird. Allerdings verwendet die angelsächsische Welt den Punkt als Dezimalzeichen. Darum wird die deutsche 1,2 im Pythonprogramm als 1.2 dargestellt.

Fließkommazahlen sind leider oft nicht ganz exakt. Wenn von der 1 wiederholt 0.1 abgezogen wird, wird der Wert 0 nicht exakt erreicht. Hintergrund ist, dass Fließkommazahlen wie alle Zahlen binär kodiert werden. Ärgerlicherweise ist ausgerechnet 0.1 in ihrer Binärdarstellung eine Periode, also nicht endend.

Zwei Schrägstriche bewirken eine ganzzahlige Division. Das Prozentzeichen nennt man Modulo und berechnet den Rest einer ganzzahligen Division.

Eine Variable wird durch seine Zuweisung definiert. Lesende Zugriffe auf nicht definierte Variablen führen zu einem gravierenden Fehler, der das Programm abstürzen lässt. Der Informatiker spricht von einer Exception.

Mathematische Ausdrücke

Python kann Zahlen und Variablen miteinander verrechnen und verwendet dazu die in den meisten Programmiersprachen üblichen Operatoren.

OperatorBedeutung
+ Addition
- Subtraktion
* Multiplikation
/ Division, ergibt immer eine Fließkommazahl
// ganzzahlige Division ohne Rest
% Rest einer ganzzahligen Division
** Exponent

Rangfolge

Die Ausdrücke können kombiniert werden. Die Auswertungsreihenfolge: Operatoren gleicher Ebene werden von links nach rechts ausgewertet.

In einem Ausdruck rechts des Zuweisungszeichen kann auch die Variable links vom Zuweisungszeichen erscheinen. Dann enthält die Variable rechts vom Gleichheitszeichen den Wert, wie er vor der Zuweisung war.

zaehler = 1
zaehler = zaehler + 1
In der zweiten Zeile wird zunächst alles rechts vom Gleichheitszeichen ausgewertet. Dazu wird in die Variable zaehler geschaut. Darin steht noch die 1 aus der ersten Zeile. Diese 1 wird nun um eine 1 erhöht und ergibt 2. Dieser Wert wird anschließend in der Variablen zaehler gespeichert.

Es gibt eine Kurzform dafür, dass eine Variable um einen Wert erhöht wird. Dazu wird das Pluszeichen vor das Gleichheitszeichen positioniert. Das funktioniert auch mit Minus.

zaehler = 1
zaehler += 1

Unterschiede zu anderen Programmiersprachen

Ein ++ oder -- wie in C oder Java gibt es in Python nicht.

Auch interessant: In Python sind alle Variablen Objekte. Es sind nicht wie bei anderen Sprachen primitive Datentypen. Darum kann man auch über Zahlenwerte Methoden aufrufen.

a = 21.2.as_integer_ratio()

Zeichenketten, also Strings

Zeichenkettenliterale werden durch Anführungszeichen oder Hochkommata eingeschlossen, mehrzeilige Literale in dreifache Anführungszeichen.

gruss = "Hallo!"
name = 'Arnold'
lyrik = """When I see a bird that
walks like a duck and swims like a duck and quacks like a duck,
I call that bird a duck.
(James Whitcomp Riley)"""

Wurde eine Variable mit einem String belegt, liefert die Funktion type als Typen str zurück.

Mit Texten kann man unglaublich viel machen. Darum werden diese Strings auf einer eigenen Seite ausführlicher behandelt.

Eingabe und Ausgabe

Eingabe

Python verwendet für die Eingabe die Funktion input(). Das Ergebnis wird in einer Variablen gespeichert und ist immer ein String.

Die Funktion input() erlaubt auch Zeichenketten als Parameter, die dann direkt vor der Eingabe ausgegeben werden.

name = input("Wie heissen Sie? ")
print("Guten Tag,", name)
Wenn der Benutzer eine Zahl eingeben soll, muss die Eingabe vor dem Rechnen erst in eine Zahl umgewandelt werden.
alter = eval(input("Wie alt sind Sie? "))
print("Und nächstes Jahr sind Sie ", alter+1, "Jahre alt")

Ausgabe mit print

Die Ausgabe erfolgt mit der Funktion print(). Es können mehrere Werte an print() übergeben werden, die dann durch Komma zu trennen sind. Die Ausgabe erfolgt dann in der gleichen Zeile.

Soll am Ende kein Zeilenvorschub erfolgen, können Sie den Parameter end der Methode print() in ein Leerzeichen oder in einen leeren String ändern.

print("Anfang", end=" ")
print("Ende")
Nun erscheinen Anfang unde Ende durch ein Leerzeichen getrennt in derselben Zeile.

Kommentare

Während ich ein Programm schreibe, ist mir vollkommen klar, was ich warum tue. Aber schon einen Monat später frage ich mich manchmal, was mich da eigentlich geritten hat. Es ist mir schon passiert, dass ich etwas korrigiert habe und dann später alles wieder zurückänderte, weil ich dann verstanden habe, warum ich es genau so gemacht habe.

Darum ist es klug, seine Gedanken in Kommentaren zwischen die Programmzeilen zu setzen. Dabei ist es wenig hilfreich zu erklären, wie es funktioniert. Denn der Leser wird die Syntax von Python nicht vergessen haben, sondern warum Sie es auf diese Weise gelöst haben.

Die einfachen Kommentare werden durch ein Doppelkreuz eingeleitet.

# Dies ist ein Kommentar
zahl = 12 # ab dem Doppelkreuz nur zur Kenntnisnahme
Drei Anführungszeichen leiten einen Blockkommentar ein und aus.
""" Dies ist ein Kommentar
der hört hier noch nicht auf
Erst am Ende dieser Zeile """
Die drei Anführungszeichen bilden gleichzeitig ein mehrzeiliges Zeichenkettenliteral.

Im Zusammenhang mit Funktionen werden sie auch docstrings genannt, weil sie über die Funktion help Informationen liefern.

Übungsaufgaben

So wie man Klavierspielen nicht durch das Abhören von Klaviermusik lernt, lernt man auch Programmieren nur durch eigenes Üben und Programmieren. Also vollziehen Sie bitte zunächst das hier beschriebene nach. Wenn Sie das geschafft haben, sollten Sie ein paar eigene Programme schreiben.

Die Fahrt zur Disko

Ihr Programm berechnet Ihnen die Kosten pro Kilometer. Nun erweitern Sie das Programm um die Entfernung zur Disko. Dann soll es Ihnen errechnen, was die Fahrt kostet.

Wenn Sie dort nüchtern bleiben, können Sie auch die Fahrt zurück berechnen. Ansonsten müssen Sie ein Taxi bezahlen. Das ist immer noch billiger als wenn Sie einen Unfall bauen oder von der Polizei erwischt werden. Aber diese Kosten sind mit einem einfachen Python-Programm nicht so leicht zu ermitteln.

Der Dreisatz

Auf dem Markt finden Sie ein Schild: 5 Tomaten für 2 Euro. Sie brauchen aber 7 Tomaten. Schreiben Sie ein Programm, das Ihnen das ausrechnet, aber bitte so, dass es auch funktioniert, wenn 2 Kilo Schrauben 3,75 Euro kosten und Sie wissen wollen, was 13 Kilo kosten.

Fahrenheit und Celsius

Für die Temperatur gibt es die Einheiten Fahrenheit (F) und Celsius (C). Um aus den bei uns üblichen Temperaturen in Celsius den in den USA üblichen Wert in Fahrenheit zu errechnen, multiplizieren Sie den Celsiuswert erst mit 9, teilen das Ergebnis durch 5 und addieren anschließend 32.

Falls Ihnen das nicht im Kopf gelingt, schreiben Sie doch einfach ein Python-Programm, das Ihnen das abnimmt. Und wenn das einfach war, schreiben Sie noch ein Programm, das in die andere Richtung umrechnet. Sie schaffen das!

Body Mass Index BMI

Wer seinem Body-Shaming gern Zahlen zugrunde legt, kann den BMI zu Rate ziehen. Der BMI ist eine Zahl, die sich aus dem Gewicht ergibt, das durch das Quadrat der Größe ergibt. Berechnen Sie diesen Wert und geben Sie ihn aus.

Quelle: Wikipedia BMI

Was man auch immer über den BMI denken mag, es stellt eine prima Übung zum Programmieren dar. Wenn Sie erst den Befehl if kennenlernen, können Sie der nackten Zahl sogar eine Bedeutung zuordnen.

Video