75
3.7
Guter Programmierstil
Abb. 3.6: Vom Problem zum Programm
3.7 Guter Programmierstil
Programmtexte sollten wie Gebrauchsanleitungen, Zeitungsartikel und wissenschaftliche
Abhandlungen möglichst versndlich geschrieben werden. Wenn wir über Programmierstil
reden, betrachten wir einen Programmtext als Dokument, das von Menschen für Menschen
verfasst worden ist. Programme werden häufig gelesen, verändert und weiterentwickelt.
Guter Programmierstil scheint zunächst mit größerem Aufwand verbunden zu sein, zahlt
sich aber rasch aus, wenn man sich in einen Programmtext wieder »hineindenken« muss,
den man vor längerer Zeit geschrieben hat. Bei großen Projekten ist es ohnehin so, dass man
im Team zusammenarbeitet und Programmtexte liest und nachvollzieht, die von anderen
Personen geschrieben worden sind.
An verschiedenen Stellen dieses Buches sind Anregungen zur Verbesserung der Lesbarkeit
von Programmen eingestreut. Wir beginnen mit den wichtigsten Regeln.
Problem-
beschreibung
Python-Interpreter
Problem in der Realwelt
Abstraktion
Präzisierung,
Formalisierung
Problem-
spezifikation
Algorithmus
Programm
Ermitteln eines
Lösungsweges
Programmierung in
einer Programmiersprache
Kapitel 3
Python-Skripte
76
Bezeichnerwahl
Idealerweise ist ein Programm selbstdokumentierend. Das heißt, der Programmtext ist ohne
weitere Erläuterungen und Kommentare verständlich. Dies kann man durch geschickte
Wahl von Bezeichnern erreichen.
Namen sollten zum Ausdruck bringen, was das betreffende Objekt darstellt (»sprechende
Namen«). Beispiel:
Eine Konvention bei Python-Skripten ist, dass Variablennamen und die Namen von Funk-
tionen und Methoden mit einem kleinen Buchstaben beginnen. Die Namen von Klassen
dagegen beginnen mit großen Buchstaben.
Wird ein Bezeichner aus mehreren Wörtern zusammengesetzt, so beginnt jedes Teilwort
(außer dem ersten) mit einem Großbuchstaben. Beispiele:
anzahlPersonen, volumenQuader.
Bei langen Namen sollte man Abkürzungen verwenden, da sonst die Programmzeilen zu
lang und unübersichtlich werden und der Schreibaufwand zu groß wird. Außerdem bergen
lange Namen die Gefahr von Schreibfehlern. Vor allem aber – so sagt die Kognitionspsycho-
logie – kann man lange Namen schlecht im Arbeitsgedächtnis behalten. Deshalb ist ein Pro-
grammtext mit kurzen Namen oft besser verständlich.
Zur Formulierung prägnanter Bezeichner können folgende Tipps hilfreich sein:
Wenn es passende Abkürzungen des allgemeinen Sprachgebrauchs gibt, sollte man
diese verwenden (z.B.
std für Stunde, pers für Person).
Häufig gebrauchte Namen sollten kürzer als selten gebrauchte sein.
Abkürzungen sollten nach Möglichkeit aussprechbar sein.
Vermeiden Sie sehr ähnliche Bezeichner, sonst kann es zu Verwechslungen kommen.
Layout
Jede Anweisung sollte in einer neuen Zeile stehen. Das folgende Programm ist zwar syntak-
tisch korrekt, ist aber auf Grund des Layouts schlecht lesbar:
Lange Skripte (mehr als zehn Zeilen) sollten durch Leerzeilen in sinnvolle Abschnitte unter-
teilt werden.
Kommentare werden so in den Programmtext eingefügt, dass die Programmstruktur gut
erkennbar bleibt (siehe nächster Abschnitt).
länge = input("Länge des Quaders in cm: ")
breite = input("Breite des Quaders in cm: ")
höhe = input("Höhe des Quaders in cm: ")
volumen = länge*breite*höhe
print("Das Volumen ist", volumen, "Kubikzentimeter")
a=input("a: ");q = a*a; print("Quadrat:",q)
77
3.7
Guter Programmierstil
Zum Layout gehören auch Einrückungen. Wie Sie bereits wissen, sind bei Python Ein-
rückungen durch die Syntax zwingend vorgeschrieben. Sie markieren Blöcke, das heißt
zusammengehörige Anweisungsfolgen.
Kommentare
Bei einem größeren Projekt sollte am Anfang eines Programmtextes ein Kommentar ste-
hen, der die Historie, den aktuellen Stand (Version) und die Funktion des Programms
beschreibt. Bei kleinen Skripten, die nur der Übung dienen oder zu Testzwecken geschrie-
ben werden (wie viele Beispielskripte in diesem Lehrbuch) lässt man diesen einleitenden
Kommentar weg oder beschränkt ihn auf eine kurze Funktionsbeschreibung. Beispiel:
Um verschachtelte Blockstrukturen noch transparenter zu machen, kann man das Ende
einer zusammengesetzten Anweisung – wie etwa eine
for-Anweisung – durch einen Kom-
mentar markieren. Das folgende Beispielskript schreibt alle vierstelligen Binärzahlen auf
den Bildschirm. Hier wurde absichtlich mit den Kommentaren etwas übertrieben. In der
Praxis wird man nur das Ende eines längeren Anweisungsblocks durch einen Kommentar
deutlich machen.
Programmlauf:
#-----------------------------------------------------
# Dateiname: quader.py
# Version: 1.0
# Funktion: Berechnung des Volumens eines Quaders
# Autor: Michael Weigend
# Datum der letzten Änderung: 26.09.16
#-----------------------------------------------------
for i3 in [0, 1]:
for i2 in [0, 1]:
for i1 in [0, 1]:
f or i 0 in [ 0 , 1]:
print(i3,i2, i1, i0, end=" ")
# e n d e fo r i 0 . . .
# end e for i 1 ...
p r int( )
# ende for i2 ...
# ende for i3 ...
0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1
0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1
1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1
1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.