Beispiel und Fehlerbehandlung bei Anwendungen
Module am Beispiel eines Rechners
Um ein Programm zu entwickeln, ist die Vorgehensweise anfangs rein sequentiell , man arbeitet nacheinander die Befehle ab und erreicht entsprechende Ergebnisse. Dabei ist es für EVA - Programme notwendig, der Eingabe die Verarbeitung folgen zu lassen und nicht umgekehrt. Ein einfaches Volumenberechnungsprogramm würde sich wie folgt darstellen.
01 a = input () |
Dieses sehr einfache und selbsterklärende Programm hat gravierende Mängel. Der offensichtlichste ist die fehlende Benutzerführung. Der Benutzer hat keine Ahnung was passiert. Jedoch das kann man ändern .
01 a = int (raw_input ("Geben Sie einen Wert für a ein : )) |
Auch dieser sequentielle Code ist unzureichend. Hier sticht die Redundanz hervor. Es macht aus Effizienz und Speichergründen keinen Sinn, gleichen Code mehrfach aufzurufen. Einen Ausweg bietet die Verwaltung der einzelnen Schritte über einzelne Methoden. Die Methoden werden in einer separaten Testumgebung aufgerufen. Der Gesamttext wird hier zwar länger, aber es wurden universell einsetzbare Methoden geschaffen, die auch in einem anderen Kontext Verwendung finden können.
01 def eingabe (): |
Hierbei werden Variablen übergeben, deren Typ eine entscheidende Rolle bei der Verarbeitung spielen. Scheinbar komplizierter, aber die hier vage angedeutete Vorgehensweise ist ein Schritt in Richtung Arbeitsteilung. Dadurch werden wichtige Softwarequalitäten erreicht, die vor allem in größeren Systemen eine entscheidende Rolle spielen.
In Anwendungen werden oft grafische Interfaces geschaffen, die dem Benutzer die Arbeit mit der Software erleichtern sollen (?). Trotzdem dies nicht der Kern der Programmierung ist, sondern eher zeitraubend und weit an den Konzepten vorbei, unser Beispiel nun etwas bunter.
01 import Tkinter |
Ausgehend von diesem Einstieg ist es nun möglich, sich genauer mit Problemen der Programmierung zu befassen und sich später komlexeren Datenstrukturen (objektorientiert) zu nähern.
Python Referenz von von David M. Beazley (1.57 MB)