Skriptsprachen am Beispiel Python



Ähnliche Dokumente
Algorithmen und Programmieren II Einführung in Python

Grundlagen von Python

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Algorithmen mit Python

Übersicht Programmablaufsteuerung

Java Kurs für Anfänger Einheit 5 Methoden

Tutorium Rechnerorganisation

Vorkurs C++ Programmierung

Funktionales Programmieren in Python

Die aktuelle Version des SPIEGEL-Bestseller-Widgets können Sie auf unserer Website unter Entwicklertools herunterladen.

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Multimedia im Netz Wintersemester 2011/12

Einführung in die Programmiersprache Python

Einführung in PHP. (mit Aufgaben)

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

5. Tutorium zu Programmieren

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Die Programmiersprache C99: Zusammenfassung

Einführung in die Programmierung

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Gesicherte Prozeduren

Grundlagen. Kapitel 1

Graphic Coding. Klausur. 9. Februar Kurs A

Prinzipien der Softwareentwicklung S. Strahringer

VBA-Programmierung: Zusammenfassung

Die freie Programmiersprache Python mit Beispielen für ihren praktischen Einsatz. Python User Group Köln

2. Programmierung in C

Java Einführung Programmcode

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Kontrollstrukturen und Funktionen in C

Objektorientierte Programmierung OOP

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Funktionale Programmierung mit Haskell

Einführung in die C-Programmierung

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

CGI Programmierung mit Ha. Markus Schwarz

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Lua Grundlagen Einführung in die Lua Programmiersprache

Informatik für Schüler, Foliensatz 23 Konstruktor, String-Methode und Heldenklassse

Kontrollstrukturen - Universität Köln

Funktionale Programmierung

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Computeranwendung und Programmierung (CuP)

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Informatik für Schüler, Foliensatz 21 Objektorientierte Programmierung

C/C++ Programmierung

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. Hochschule Darmstadt -Fachbereich Informatik-

Python Einführung in die prozedurale Programmierung. Monty Python's Flying Circus

Objektbasierte Entwicklung

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Erwin Grüner

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Deklarationen in C. Prof. Dr. Margarita Esponda

Grundbegriffe der Informatik

Java Einführung Packages

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger

Excel Funktionen durch eigene Funktionen erweitern.

Übung: Verwendung von Java-Threads

Task: Nmap Skripte ausführen

JSP JSTL. JEE Vorlesung Teil 6. Ralf Gitzel

4D Server v12 64-bit Version BETA VERSION

Objektorientierte Programmierung. Kapitel 12: Interfaces

Projektverwaltung Problem Lösung: Modulare Programmierung

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Java-Tutorium WS 09/10

Einführung in die Programmierung mit C++

Abschlussbericht. Einführung in Python. Gruppe: 1 Autoren: Thomas Merkel (19868) David Höss (19182) Stefan Bisinger (19227)

Einführung in Javadoc

2D22 Prinzipien der Softwareentwicklung. Prinzipien der Softwareentwicklung S. Strahringer 1

Kompilieren und Linken

Objektorientierte Programmierung

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Klausur C-Programmierung / / Klingebiel / 60 Minuten / 60 Punkte

IT-Basics 2. DI Gerhard Fließ

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Programmieren Lernen mit BYOB. Gerald Futschek 5. November 2012

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

Programmieren in Java

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Software Engineering Klassendiagramme Einführung

Interaktive Medien Richtlinien für das Codieren Version vom 18. Juni 2014

e LEARNING Kurz-Anleitung zum Erstellen eines Wikis 1. Wiki erstellen

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Programmieren für Ingenieure Sommer Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.

Grundlagen der Programmierung (Vorlesung 14)

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Innere Klassen in Java

Pädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung

Transkript:

Seminar Programmiersprachen Skriptsprachen am Beispiel Python Norman Thomas 8. Juni 2004

Überblick Was sind Skriptsprachen? Was ist Python? Python und Syntax Datentypen Kontrollstrukturen Module Ausführung & Kompilierung Debugging Andere Aspekte von Python OOP Funktionale Programmierung Anwendungsgebiete Schlusswort Quellenverzeichnis

Was sind Skriptsprachen? Quellcode wird interpretiert evtl. vor Interpretierung erst Kompilierung zu Bytecode dynamische Typisierung Garbage Collector typischerweise weniger Aufwand plattformunabhängig

Was ist Python? Anfang der 90er erfunden Erfinder: Guido van Rossum Benannt nach Monty Python Skriptsprache objektorientierte Programmierung möglich Elemente der funktionalen Programmierung OpenSource aktuelle Version: 2.3.4 Standard-Python ist CPython es gibt auch Jython und Python.NET Jython erzeugt Java-Bytecode auch frozen binaries erzeugbar

Syntax kein Semikolon am Zeilenende Aneinanderreihung von Anweisungen getrennt durch Semikolon möglich Empfehlung das nicht zu tun Einrückung als zentrales Syntaxmerkmal Blöcke durch Einrückung gekennzeichnet Erhöhung der Lesbarkeit durch o.g. Mittel

Datentypen dynamische Typisierung keine Variablendeklaration keine Typangabe zur Laufzeit änderbare Typen strenge Typisierung (fast) keine implizite Typkonvertierung implizite Konvertierung zwischen int, float, complex trotzdem gibt es Casts

Datentypen (2) Python bietet einige mitgelieferte Datentypen Ganzzahlen und Gleitkommazahlen Ganzzahlen können beliebig groß werden Complex c = 1+4j Strings s = "Python" Tupel t = (1, 2, 3) Listen l = [1, 2, 3] Hashtabellen d = {1 : 2, "gerade" : 0} Je nach Typ ist der Wert der Variablen in-place veränderbar

Kontrollstrukturen Python bietet für Bedingungen if, elif, else jedoch kein switch / case Bereichsabfragen möglich bool'sche Ausdrücke sind keine kryptischen Zeichen für Schleifen for while kein do-while oder repeat-until keine Klammern im Kopf Kopf endet mit Doppelpunkt Rümpfe müssen eingerückt werden

Funktionen Form der Modularisierung Wiederverwendbarkeit von Code Funktionen können Parameter besitzen Parameter immer als Referenzen übergeben evtl. nicht beabsichtigte Veränderung der Originalparameter erst kopieren auch bei Parametern keine statische Typisierung Defaultparameter möglich verschiedene Arten des Funktionsaufrufs Return wird nicht deklariert

Module dienen der Modularisierung Wiederverwendbarkeit von Code ähnlich den Packages aus Java Modul ist eine Datei Module sind importierbar verschiedene Varianten zum Importieren große Module-Bibliothek bereits vorhanden Jython ermöglicht sogar Importieren von Java- Klassen

Ausführung und Kompilierung Python-Code wird interpretiert Interaktive Shell Script als Datei Aufruf des Skripts mit "#!/pfad" oder python Kompilierung zu Bytecode Ausführung des Bytecodes durch PVM Psycho (JIT) kompiliert Teile des Programms zur Laufzeit zu echten binären Programmen Psycho bringt Geschwindigkeitsvorteil (4x)

Debugging mitgelieferter Debugger im Module pdb Modul importieren Programm zum debuggen importieren pdb.run("instance = progmod.func()") Breakpunkte möglich Schritt-für-Schritt Ausführung möglich Überwachen von Variablen Ändern von Variablen Anzeigen des Quellcodes & Aufrufstacks

Objektorientierung Auch OOP zur Code-Wiederverwendung Python kennt Klassen, Methoden und Attribute Python kennt keine Sichtbarkeiten unsicherer Mechanismus zum Ersatz von Sichtbarkeiten: varname Konstruktoren & Destruktoren self Ansprechen von Attributen Vererbung und Mehrfachvererbung möglich

Funktionale Programmierung lambda: einzeilige Funktionen reduce: reduce((lambda x,y : x+y), (1,2,3)) 1+2+3 = 6 filter: filtert Elemente aus Liste aus filter((lambda x : x%2 == 0), (1,2,3,4)) (2,4) map: wendet Funktion auf jedes Listenelement an map((lambda x : x**3), (1, 2, 3)) (1, 8, 27) zip: verknüpft Listen zu einer Liste mit Pärchen zip((1, 3), (2,4)) ((1, 2), (3, 4)) list comprehensions [ x**2 for x in range(100) if x % 2 == 0]

Anwendungsgebiete Steuerung anderer Programme serverseitige Programmierung (CGI) Administrationstools Zope (Application Server) auch grafische Oberflächen möglich

Schlusswort herausragendstes Merkmal: Lesbarkeit Pythons Philosophie: Einfachheit (Orthogonalität) Dadurch vereinfacht sicht Wartung Skriptsprache, daher portabel geeignet für schnelle Lösung von Problemen Allround-Sprache Effizienz wird nicht außer Acht gelassen (Psyco, Generatoren, Referenzen statt Kopien) Weitere Features: PythonDoc (JavaDoc),Exception- Handling, Unit-Tests (pyunit) Korrektheit wird unterstützt durch Lesbarkeit, Orthogonalität, Debugging, Unit-Tests Es gibt also keinen Grund, Python nicht zu nutzen!

Quellenverzeichnis Learning Python, Mark Lutz & David Ascher, O'Reilly, 2003, 0-596- 00281-5 Programming Python, Mark Lutz, O'Reilly, 2002, 0-596-00085-5 Offizielle Python Seite: www.python.org, www.python.org/docs/current Die Programmiersprache Python, Stefan Schwarzer, 2001, http://home.tu-clausthal.de/~svss/python_vortrag/ ix-artikel Wie Python arbeitet, Rainer Fischbach, Nov. 1999, www.heise.de/ix/artikel/1999/11/184/ WikiPedia, Juni 2004, http://de.wikipedia.org/wiki/python_%28programmiersprache%29 IBM DeveloperWorks, diverse Online-Artikel, http://www-106.ibm.com/developerworks/views/linux/articles.jsp?sort_o

Vielen Dank für Eure Aufmerksamkeit