16.02.2014 Aufrufe

Einführung in die Programmierung - RRZN

Einführung in die Programmierung - RRZN

Einführung in die Programmierung - RRZN

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!