Proseminar Programmiersprachen Python Von Andrej Szaffranietz und Ronja Deisel SS 2012 Abbildung: http://www.webmasterpro.de/coding/article/python.html
Inhalt: Entwicklung Pythons Ausgewählte Eigenschaften Beispielprogramme Anwendungen Kritische Beurteilung
Entwicklung Entwicklung seit 1989 durch Guido van Rossum Veröffentlichung 1991 Version 1.0.0: 1994 Aktuell: 3.2.2. Noch in Verwendung: 2.7.2. Inzwischen weit verbreitet Name „Python“ als Anspielung auf Komikergruppe Monty Python Einflüsse: ABC, C, Perl, Modula-3, LISP, Haskell, etc. Abbildung: https://us.pycon.org/2012/keynotes/
Entwicklung: Ziele Erweiterbarkeit Open Source Mächtigkeit: Große Standardbibliothek Viele verfügbare Module Erleichterung des Programmieralltags: Übersichtlicher Syntax durch Einrückung zur Blockbegrenzung Reduziere Syntax, wenige Schlüsselwörter Interaktiver Modus Plattformunabhängigkeit: Meist kompilierender Interpreter Windows, Unix, Mac OS, u.a.
Multiparadigmensprache: Komplett unterstützt: objektorientiert, strukturiert Möglich: imperativ, funktional, ... Intern: streng objektorientiert „alles ist ein Objekt“: Stings, Listen, Funktionen, Module,... Beispiel: Jedes Objekt besitzt Methode type >> type(3) <type ‘int‘> >> type(„string“) <type ‘str‘> >> type(len) <type ‘builtin_function_or_method‘>
Ausgewählte Eigenschaften Alles ist ein Objekt Dynamische Typverwaltung Strukturierung durch Einrücken Schema eines Pythonprogramms Importanweisungen Funktionsdefinitionen Hauptprogramm
Funktionsdefinition Funktionsdefinition Programmcode der Funktion def geom(breite, laenge): Programmcode der Funktion flaeche = breite * laenge umfang = 2 * (breite + laenge) Evtl. Rückgabewerte return flaeche, umfang Funktionsaufruf f, u = geom(3, 7) print “Fläche: “, f print “Umfang: “, u
Kontrollstrukturen I if Bedingung: elif Bedingung: else: ... elif Bedingung: … else: if x<12: y = 20 else: y = 8 Bedingter Ausdruck: y = (20 if x<12 else 8)
Kontrollstrukturen II while Bedingung: Anweisung … continue break for Variable in Objekt: Anweisung … for i in range(start, stop, step)
Beispielprogramme
Anwendungen Als Skriptsprache: Dynamische Webanwendungen z.B.: Open Office, GIMP, NASA Dynamische Webanwendungen z.B.: Google Spider/Search Engine/App Engine, YouTube Entwurf von Prototypen Lehre: z.B.: „One Laptop per Child“ Desktopanwendungen 3D-Simulationen Echtzeit-Syteme Mathematische Fragestellungen ...
Kritische Beurteilung: Vorteile Benutzerfreundlichkeit, leicht erlernbar: Klare/reduzierte Syntax Übersichtlichkeit Mächtigkeit: Große Standardbibliothek Flexibilität: Multiparadigmensprache Erweiterbarkeit: Module in C und Python werden unterstützt
Kritische Beurteilung: Nachteile Fehleranfällig, wegen dynamischer Typisierung Fehlen bekannter Konstrukte switch do while ... schlechte Performance
Kritische Beurteilung: Fazit Große Vielfalt an Einsatzmöglichkeiten mit Ausnahme von performance-kritischen Anwendungen Kann Effizienz und Stil von Entwicklern verbessern Stetige Weiterentwicklung Interessante, vielseitige Programmiersprache
Literaturhinweise: Online: Literatur: Offizielle Homepage: http://python.org/ Van Rossums Blog: http://neopythonic.blogspot.de/ Usenet: comp.lang.python Literatur: Programming Python, Mark Lutz, O‘Reilly Media A byte of python (http://www.swaroopch.com/notes/Python#Download) Dive into Python, Mark Pilgrim, Apress
Vielen Dank für eure Aufmerksamkeit! Fragen?