3 Programmstrukturen
In diesem Kapitel lernen Sie, wie Sie mit der linearen Programmstruktur, der Verzweigungs- und der Wiederholstruktur einfache Python-Programme schreiben und eigene Python-Funktionen definieren.
Elementare Bestandteile von Computerprogrammen sind Anweisungen, Zuweisungen, Variablen und Operationen. Grundsätzlich gilt, dass in jeder Programmzeile eine Anweisung (engl. statement) steht, die dem Interpreter mitteilt, welchen Befehl er ausführen soll. Das kann eine Zuweisung, eine Operation oder ein Funktionsaufruf sein. Eine Zuweisung bewirkt, dass ein Zahlenwert, eine Zeichenkette oder (allgemein formuliert) ein Objekt in eine Speicherzelle, die durch eine Variable repräsentiert wird, gespeichert werden soll. Sind die Zahlenwerte in Variablen gespeichert, dann können mit ihnen die üblichen Rechenoperationen durchgeführt werden. Für die Durchführung der mathematischen Grundoperationen stellt Python die Operatoren +, -, * und / zur Verfügung.
Es gibt nur drei elementare Programmstrukturen: die lineare Programmstruktur, die Verzweigungs- und die Wiederholstruktur. Diese drei Strukturen reichen aus, um jede berechenbare numerische Aufgabe mit einem Computerprogramm zu lösen.
In Abschnitt 3.1 stelle ich Ihnen zunächst kurz die Operatoren vor, die Sie das ganze Buch hinweg begleiten werden. Um die einzelnen Programmstrukturen geht es ab Abschnitt 3.2.
Da Ihre Programme jedoch schnell unübersichtlich und unverständlich werden, wenn Sie diese Strukturen nicht weiter gliedern, geht es in Abschnitt 3.6 um selbst erstellte Python-Funktionen, mit denen Sie Ihre Programme einfacher und übersichtlicher gestalten können.
Abschließend muss ich in Abschnitt 3.9.2 noch ein Thema ansprechen, das für kleine Programmierübungen noch nicht wichtig ist, aber eine zentrale Bedeutung bekommt, wenn Sie die Effektivität von Algorithmen einschätzen wollen: die Laufzeitkomplexität.
3.1 Mathematische Operatoren
Python beherrscht, wie jede andere Programmiersprache auch, die typischen mathematischen Grundoperationen Addition, Subtraktion, Multiplikation, Division, Potenzieren und Wurzelziehen auf Zahlen der Klassen int und float. Tabelle 3.1 enthält eine Übersicht über die Python-Operatoren, mit denen die mathematischen Grundoperationen durchgeführt werden können.
Operator |
Beschreibung |
---|---|
+ |
Addition |
- |
Subtraktion |
* |
Multiplikation |
/ |
Division. Das Ergebnis ist immer eine Gleitpunktzahl. |
// |
Ganzzahldivision |
% |
Modulo-Operation: Division mit Rest. |
a**n |
Potenz an |
sqrt(x) |
Berechnung der Wurzel aus x. Das Modul math muss importiert werden. |
a**(1/n) |
Berechnet die n-te Wurzel aus a. |
Tabelle 3.1 Mathematische Operatoren
Mit der Python-Konsole können Sie die mathematischen Grundoperationen testen:
>>> 6/3
2.0 #Float
>>> 6//3
2 #Integer
>>> 7/3
2.3333333333333335 #Rundungsfehler
>>> 17%3
2
>>> 4+8/2+3*4
20.0
Beachten Sie, dass die Division 6/3=2.0 keine Ganzzahl ergibt, sondern eine Gleitpunktzahl, obwohl die Zahl 3 ein echter Teiler der Zahl 6 ist.
Der Python-Interpreter berechnet 16 Nachkommastellen, wobei die letzte Stelle falsch sein kann (eine 5 anstatt einer 3). Der Python-Interpreter beherrscht die Punkt-vor-Strich-Regel.