Einführung in die Programmierung - RRZN
Einführung in die Programmierung - RRZN
Einführung in die Programmierung - RRZN
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Python –<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong><br />
Monty Python's Fly<strong>in</strong>g Circus
Literatur<br />
Buchtitel Autor ISBN-Nummer<br />
Python<br />
Python3<br />
Objektorientierte<br />
<strong>Programmierung</strong> mit Python 3<br />
Handbuch des <strong>RRZN</strong><br />
Johannes Ernesti<br />
Peter Kaiser<br />
978-3-8362-1412-4<br />
Michael Weigand 978-3-8266-1750-8<br />
Python Ge-Packt Michael Weigand 978-3-8266-5934-8<br />
Programm<strong>in</strong>g <strong>in</strong> Python 3 Mark Summerfield 978-0-1371-2929-4<br />
Python 3 - Intensivkurs Mark Pilgrim 978-3-6420-4376-5<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 2
Dokumentation im Web<br />
<br />
<br />
Python: http://www.python.org/<br />
Dokumentationen:<br />
http://docs.python.org/py3k/<br />
http://tutorial.pocoo.org/<br />
http://www.dive<strong>in</strong>topython3.org/<br />
http://webpages.cs.luc.edu/~anh/python/handson/3.0/handson.pdf<br />
http://www.python-kurs.eu/deep_copy.php<br />
http://<strong>in</strong>ventwithpython.com/<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 3
Foren im Web<br />
<br />
Foren:<br />
http://www.python-forum.de/<br />
http://www.python-forum.org/pythonforum/<strong>in</strong>dex.php<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 4
Python ...<br />
<br />
<br />
<br />
<br />
wurde von Guido von Rossum am Centrum voor Wiskunde en<br />
Informatica Anfang 1990er Jahre entwickelt.<br />
ist e<strong>in</strong>e prozedurale sowohl als auch objektorientierte Sprache.<br />
ist nicht nach der Schlangenart sondern nach der britischen<br />
Comedy-Gruppe Monty Python benannt wurden.<br />
wird momentan <strong>in</strong> der Version 3.1.2 ausgeliefert. Die Versionen<br />
3.x s<strong>in</strong>d nicht zu den Versionen 2.x abwärtskompatibel.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 5
Merkmale<br />
<br />
<br />
<br />
<br />
<br />
<br />
Prozedurale und objektorientierte <strong>Programmierung</strong> ist möglich.<br />
E<strong>in</strong>fache Syntax.<br />
Die Zeilen des Programms bilden <strong>die</strong> logische Struktur des<br />
Programms ab.<br />
Schnelle und e<strong>in</strong>fache Entwicklung von kle<strong>in</strong>en Programmen.<br />
Programme, <strong>die</strong> <strong>in</strong> anderen Sprachen geschrieben s<strong>in</strong>d,<br />
können e<strong>in</strong>gebettet werden.<br />
Plattformunabhängig. Die Programmiersprache wurde nicht<br />
speziell für e<strong>in</strong> Betriebssystem geschrieben.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 6
E<strong>in</strong>satzmöglichkeiten<br />
<br />
<br />
<br />
<br />
<br />
<br />
Web-<strong>Programmierung</strong> (CGI, Django, TurboGears, Zope...).<br />
Textverarbeitung.<br />
GUIs / Dialogfenster entwickeln (Tk<strong>in</strong>ter, …).<br />
Prototypen-Erstellung für Machbarkeitsstu<strong>die</strong>n.<br />
Nutzung als, <strong>in</strong> e<strong>in</strong>e Anwendung, e<strong>in</strong>gebettete, Skriptsprache.<br />
Siehe http://www.python.org/about/success/.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 7
Prozedurale <strong>Programmierung</strong><br />
Die zu lösende Gesamtaufgabe wird <strong>in</strong> mehrere Teilaufgaben<br />
unterteilt.<br />
Jede Teilaufgabe besteht aus verschiedenen e<strong>in</strong>zelnen<br />
Anweisungen.<br />
Die Anweisungen werden mit Hilfe der Programmiersprache<br />
beschrieben.<br />
Die zu bearbeitenden Daten sowie <strong>die</strong> Anweisungen s<strong>in</strong>d<br />
getrennt.<br />
Jede Teilaufgabe kann auch <strong>in</strong> anderen Aufgaben /<br />
Problemstellungen verwandt werden.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 8
Elemente<br />
<br />
<br />
Anweisungen, <strong>die</strong> Zeile für Zeile abgearbeitet werden. Zum<br />
Beispiel: a = 5 * 3.<br />
Kontrollstrukturen für e<strong>in</strong>e strukturierte <strong>Programmierung</strong>:<br />
In Abhängigkeit e<strong>in</strong>er Bed<strong>in</strong>gung wird e<strong>in</strong>e Anweisung<br />
durchgeführt oder nicht. Zum Beispiel: Wenn divisor > 0,<br />
dann ergebnis = divident / divisor.<br />
E<strong>in</strong> Anweisung wird <strong>in</strong> Abhängigkeit e<strong>in</strong>er Bed<strong>in</strong>gung x-Mal<br />
wiederholt. Zum Beispiel: Solange a 0, a = a – 1.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 9
Programmiertool IDLE ...<br />
<br />
<br />
<br />
ist <strong>die</strong> Abkürzung für Integrated Development Enviroment.<br />
ist e<strong>in</strong>e e<strong>in</strong>fache Entwicklungsumgebung für Python.<br />
wird mit der Programmiersprache <strong>in</strong>stalliert.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 10
Weitere Programmiertools<br />
<br />
<br />
<br />
http://wiki.python.org/mo<strong>in</strong>/<br />
IntegratedDevelopmentEnvironments<br />
http://wiki.python.org/mo<strong>in</strong>/PythonEditors<br />
http://pythonl<strong>in</strong>ks.blogspot.com/2007/12/list-of-pythonides<strong>in</strong>tegrated.html<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 11
Vom Programm zur ausführbaren Datei<br />
… als Text schreiben<br />
Quellcode (*.py)<br />
Interpreter<br />
… erzeugt vollautomatisch<br />
Bytecode (*.pyc)<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 12
IDLE nutzen<br />
<br />
<br />
<br />
Icon auf dem Desktop.<br />
Start – Programme – Python x.x – IDLE.<br />
[Python] \ Lib \ iddlelib \ idle.bat.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 13
… besteht aus ...<br />
<br />
<br />
<br />
<br />
der Titelleiste. Unter dem Icon der Anwendung l<strong>in</strong>ks verbirgt<br />
sich das Systemmenü. Der Name der Anwendung wird<br />
angezeigt. Am rechten Rand bef<strong>in</strong>den sich Schaltflächen zum<br />
M<strong>in</strong>imieren, Verkle<strong>in</strong>ern und Schließen der Anwendung.<br />
dem Rahmen als Begrenzung der Anwendung zum Desktop.<br />
Mit Hilfe von Drag & Drop kann <strong>die</strong> Anwendung verkle<strong>in</strong>ert oder<br />
vergrößert werden.<br />
der Menüleiste mit allen Befehlen.<br />
der Arbeitsfläche.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 14
Menüleiste<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
File enthält alle Befehle zum Öffnen und Speichern von<br />
Dateien.<br />
Edit enthält Befehle zum Kopieren etc. von Anweisungen.<br />
Shell startet <strong>die</strong> Arbeitsfläche neu<br />
Debug zur Fehlersuche im Programm.<br />
Options zur Konfiguration von IDLE.<br />
W<strong>in</strong>dows.<br />
Help.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 15
Arbeitsfläche ...<br />
<br />
<br />
zeigt Informationen zur Python-Version an.<br />
blendet den E<strong>in</strong>gabeprompt >>> e<strong>in</strong>.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 16
Dem E<strong>in</strong>gabeprompt ...<br />
<br />
<br />
folgt <strong>die</strong> E<strong>in</strong>fügemarke zum E<strong>in</strong>geben von Anweisungen von<br />
Python.<br />
folgt e<strong>in</strong>e Anweisung, <strong>die</strong> abgearbeitet wurde. Direkt unterhalb<br />
der Anweisung kann das Ergebnis der Anweisung oder e<strong>in</strong><br />
Fehler angezeigt werden.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 17
Anweisungen im Shell-Modus e<strong>in</strong>geben<br />
<br />
<br />
Geben Sie <strong>die</strong> Anweisung « a = 3 » e<strong>in</strong>. Dem Platzhalter a wird<br />
der Wert 3 zugewiesen. Bestätigen Sie <strong>die</strong> E<strong>in</strong>gabe mit<br />
. Die Anweisung liefert ke<strong>in</strong> Ergebnis zurück.<br />
Geben Sie <strong>die</strong> Anweisung « a + 3 » e<strong>in</strong>. Drei und der Wert, auf<br />
den a verweist, wird ad<strong>die</strong>rt. Bestätigen Sie <strong>die</strong> E<strong>in</strong>gabe mit<br />
. Es wird das Ergebnis der Berechnung <strong>in</strong> der<br />
nächsten Zeile angezeigt.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 18
Anweisungen und Fehler<br />
Geben Sie <strong>die</strong> Anweisung « a = 3 » und bestätigen <strong>die</strong>se.<br />
Geben Sie Anweisung « a + b » e<strong>in</strong>. Bestätigen Sie <strong>die</strong> E<strong>in</strong>gabe<br />
mit .<br />
Der Platzhalter b ist nicht def<strong>in</strong>iert. Es wird e<strong>in</strong> Fehler mit roter<br />
Schriftfarbe und e<strong>in</strong>em Erläuterungstext angezeigt.<br />
Um den Fehler zu beheben, geben Sie <strong>die</strong> Anweisung « b = 5 »<br />
e<strong>in</strong>.<br />
Mit Hilfe von + durchlaufen Sie <strong>die</strong> Liste aller<br />
e<strong>in</strong>gegebenen Anweisungen bis zur Anweisung « a + b ».<br />
Bestätigen Sie <strong>die</strong> Anweisung mit .<br />
Das Ergebnis „8“ wird angezeigt.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 19
Anweisungen <strong>in</strong> e<strong>in</strong>er Datei<br />
<br />
<br />
<br />
<br />
Öffnen Sie e<strong>in</strong>en beliebigen Texteditor. Folgende Anweisung<br />
werden e<strong>in</strong>gegeben:<br />
« a = 3 »<br />
« b = 5 »<br />
« pr<strong>in</strong>t (a + b) »<br />
Pro Zeile wird e<strong>in</strong>e Anweisung geschrieben.<br />
Speichern Sie <strong>die</strong> Textdatei mit der Endung „.py“<br />
Öffnen Sie IDLE. Öffnen Sie <strong>die</strong> neu erstellte Datei mit Hilfe<br />
von File – Open.<br />
Der Inhalt der Datei wird angezeigt. Mit Hilfe von Run – Run<br />
Module werden <strong>die</strong> Anweisung Zeile für Zeile abgearbeitet. Mit<br />
Hilfe der vordef<strong>in</strong>ierten Funktion pr<strong>in</strong>t() wird das Ergebnis <strong>in</strong> der<br />
Shell von IDLE ausgegeben.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 20
IDLE im Script-Modus<br />
<br />
<br />
In der Titelleiste wird der Name des Moduls und der Pfad<br />
angezeigt.<br />
Im Texteditor werden <strong>die</strong> Anweisungen angezeigt. Die<br />
Anweisungen werden mit Hilfe der Tastatur <strong>in</strong> den Texteditor<br />
e<strong>in</strong>gegeben.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 21
Menüleiste im Script-Modus<br />
<br />
<br />
<br />
Das Menü File bietet Befehle zum Öffnen und Speichern des<br />
Programms.<br />
Das Menü Run bietet Befehle zum Ausführen der Anweisung.<br />
Das Menü Format bietet Formatierungsmöglichkeiten für den<br />
Code an.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 22
Programm ...<br />
<br />
<br />
<br />
ist e<strong>in</strong> mit Hilfe der Tastatur geschriebener Text.<br />
besteht aus Anweisungen <strong>in</strong> jeder Zeile. Die Anweisungen<br />
werden mit Hilfe der Programmiersprache Python geschrieben.<br />
müssen <strong>in</strong> e<strong>in</strong>er Datei mit der Endung „.py“ gespeichert<br />
werden.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 23
Anweisungen ...<br />
<br />
<br />
<br />
<br />
werden zeilenweise <strong>in</strong> e<strong>in</strong>e Textdatei e<strong>in</strong>gegeben.<br />
beschreiben e<strong>in</strong>e Aktion / Schritt.<br />
bestehen aus Schlüsselwörtern, Platzhaltern, Konstanten und<br />
Operatoren.<br />
beachten <strong>die</strong> Groß- und Kle<strong>in</strong>schreibung.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 24
Schlüsselwörter<br />
and except lambda while<br />
as False None with<br />
assert f<strong>in</strong>ally nonlocal yield<br />
break for not<br />
class from or<br />
cont<strong>in</strong>ue global pass<br />
def if raise<br />
del import return<br />
elif <strong>in</strong> True<br />
else is try<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 25
Platzhalter und Konstanten<br />
Platzhalter ...<br />
für e<strong>in</strong>en bestimmten veränderbaren Wert.<br />
müssen e<strong>in</strong>en Wert vor der Nutzung mit Hilfe des<br />
Gleichheitszeichens zugewiesen bekommen.<br />
s<strong>in</strong>d zum Beispiel « a = 3 », « _wortlaenge = 5 ».<br />
Konstanten ...<br />
s<strong>in</strong>d feste Werte.<br />
« 3 » symbolisiert e<strong>in</strong>e Ganzzahl.<br />
« 3.4 » symbolisiert e<strong>in</strong>e Dezimalzahl.<br />
« "Text" » symbolisiert e<strong>in</strong>en Text. Text wird immer <strong>in</strong><br />
Anführungszeichen gesetzt.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 26
Operatoren<br />
<br />
<br />
<br />
Arithmetische Operatoren berechnen e<strong>in</strong>en Wert aus e<strong>in</strong> oder<br />
zwei Operanden.<br />
Vergleichsoperatoren vergleichen zwei Werte.<br />
Logische Operatoren verknüpfen verschiedene Ausdrücke.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 27
Ausgabe mit Hilfe von pr<strong>in</strong>t()<br />
« pr<strong>in</strong>t (a + b) »<br />
« pr<strong>in</strong>t ("Ergebnis: ", a + b) »<br />
« pr<strong>in</strong>t() » ist e<strong>in</strong>e vordef<strong>in</strong>ierte Funktion.<br />
Funktionen ...<br />
lösen e<strong>in</strong>e bestimmte Aufgabe. In <strong>die</strong>sem Beispiel <strong>die</strong><br />
Ausgabe des Ergebnis e<strong>in</strong>er Berechnung.<br />
werden mit dem Namen « pr<strong>in</strong>t » aufgerufen<br />
bekommen <strong>in</strong> den runden Klammern e<strong>in</strong> oder mehrere<br />
Argumente übergeben. In <strong>die</strong>sem Beispiel wird das<br />
Ergebnis der Berechnung « a + b » sowie e<strong>in</strong> Text<br />
übergeben.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 28
Kommentare ...<br />
<br />
<br />
<br />
<br />
<br />
erleichtern das Verstehen e<strong>in</strong>es Programms.<br />
bieten Informationen für den Entwickler.<br />
müssen bei Code-Änderungen oder Programm-Erweiterungen<br />
angepasst werden.<br />
werden vom Computer überlesen.<br />
beziehen sich auf <strong>die</strong> Frage<br />
„Warum wird <strong>in</strong> <strong>die</strong>ser Zeile <strong>die</strong>se Aktion ausgeführt?“ und nicht<br />
„Wie wird <strong>die</strong>se Aktion <strong>in</strong> <strong>die</strong>ser Zeile ausgeführt?“.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 29
E<strong>in</strong>zeilige Kommentare<br />
« #Dies ist e<strong>in</strong> Kommentar »<br />
beg<strong>in</strong>nen immer mit dem Hash-Zeichen.<br />
beziehen sich auf <strong>die</strong> nachfolgende Zeile.<br />
stehen rechts von der zu kommentierenden Zeile.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 30
Mehrzeilige Kommentare<br />
« """ Dies ist e<strong>in</strong> mehrzeiliger Kommentar """ »<br />
<br />
<br />
<br />
<br />
<br />
beg<strong>in</strong>nen und enden immer mit drei Anführungszeichens.<br />
stehen am Anfang e<strong>in</strong>er Datei, um das Gesamtprogramm zu<br />
erläutern.<br />
erläutern e<strong>in</strong> Abschnitt e<strong>in</strong>es Programms.<br />
geben Auskunft über den Ersteller des Programms und deren<br />
Änderungsgeschichte.<br />
stehen rechts von der zu kommentierenden Zeile.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 31
Welche Python-Version wird genutzt?<br />
« #!/usr/b<strong>in</strong>/env python3 » oder « #!/usr/b<strong>in</strong>/python3 »<br />
<br />
<br />
<br />
In der ersten Anweisung wird der erste Python3-Interpreter<br />
genutzt, der <strong>in</strong> der Environment-Variablen gespeichert ist.<br />
Die zweite Anweisung nutzt immer den Python3-Interpreter <strong>in</strong><br />
dem Verzeichnis „usr/b<strong>in</strong>“. Diese Form der Anweisung wird<br />
häufig für das Web genutzt.<br />
Falls das Betriebssystem W<strong>in</strong>dows genutzt wird, wird <strong>die</strong>se<br />
Zeile nicht unbed<strong>in</strong>gt benötigt.<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> prozedurale <strong>Programmierung</strong> mit Python, 26.08.10 Seite 32