Einführung in Python. Gliederung



Ähnliche Dokumente
Erwin Grüner

Programmierung I Einführung in Python, Beyond the Basics

Algorithmen und Programmieren II Einführung in Python

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Funktionales Programmieren in Python

Einführung in die Programmierung

Übersicht Programmablaufsteuerung

Studentische Lösung zum Übungsblatt Nr. 7

Objektorientierte Programmierung

Einführung in die Programmierung

Grundlagen von Python

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

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Frankfurt am Main. Dortmund. Stuttgart. Düsseldorf

Objektorientierung: Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Excel Funktionen durch eigene Funktionen erweitern.

Lua Grundlagen Einführung in die Lua Programmiersprache

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester

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

Programmierkurs Python I

SEQUENZDIAGRAMM. Christoph Süsens

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

Objektorientierte Programmierung OOP

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

Kontrollstrukturen und Funktionen in C

Modul 122 VBA Scribt.docx

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

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

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Einführung in die C-Programmierung

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

Skriptsprachen am Beispiel Python

Dr. Monika Meiler. Inhalt

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

Die Programmiersprache C99: Zusammenfassung

Der Lua Skripteditor Lua in der Messtechnik

Graphic Coding. Klausur. 9. Februar Kurs A

Einführung in die Programmiersprache Python

Unified Communication Client Installation Guide

Programmierkurs Java

Schnellanleitung: Verbuchung von Studien- und Prüfungsleistungen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Javakurs zu Informatik I. Henning Heitkötter

Binärbäume als weiteres Beispiel für abstrakte Datentypen in PVS mit in Knoten gespeicherten Werten vom Typ T:

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

Einführung in Python Teil I Grundlagen

Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu)

Algorithmik und Programmieren

Modellierung und Programmierung 1

Kontrollstrukturen - Universität Köln

SMS-Tool. Seite 1 von 8

Java Kurs für Anfänger Einheit 5 Methoden

Beispiel 19. December 4, 2009

1 Vom Problem zum Programm

Kompetent objektorientiert programmieren

C/C++ Programmierung

Einführung in die C++ Programmierung für Ingenieure

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

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

Simon die linke Hand des Handwerks

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Programmieren in Haskell Einführung

Algorithmen mit Python

Computeranwendung und Programmierung (CuP)

Arbeiten mit UMLed und Delphi

Javakurs 2013 Objektorientierung

Einführung in das Programmieren Prolog Sommersemester Teil 2: Arithmetik. Version 1.0

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Diana Lange. Generative Gestaltung Operatoren

Einführung in Javadoc

Erfahrungen mit Hartz IV- Empfängern

Professionelle Seminare im Bereich MS-Office

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Angewandte Mathematik und Programmierung

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Vorlesung Informatik II

Michael Weigend. Python GE-PACKT

IT-Zertifikat: Allgemeine Informationstechnologien II PHP

Aktivierung von Makros in den Erfassungshilfen

10 Objektorientierte Programmierung, Teil 1

Abfrage-Befehle in MySQL -diverse Funktionen -

Datenbanken Microsoft Access 2010

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Thermoguard. Thermoguard CIM Custom Integration Module Version 2.70

Softwarelizenzen und Open Source

5. Übung: PHP-Grundlagen

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

> Soft.ZIV. Maple Mathematisches Software System

Win-Digipet V 9.2 Premium Edition Wie bastele ich mir steuerbare Kontakte. Wie bastele ich mir steuerbare Kontakte? -Quick-And-Dirty-Lösung-

Objektorientierte Programmierung. Kapitel 0: Begrüssung

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Typumwandlungen bei Referenztypen

Rundung und Casting von Zahlen

Internet online Update (Mozilla Firefox)

Anleitung zur Anmeldung beim EPA zur Nutzung von OPS 3.1

Schulung Marketing Engine Thema : Einrichtung der App

JetSym. Programmierung in Hochsprache ST nach IEC We automate your success.

Transkript:

Einführung in Python Stefan Dziwok Universität Paderborn 1. Februar 2007

Referenzen Python has been an important part of Google since the beginning, and remains so as the system grows and evolves. Today dozens of Google engineers use Python, and we re looking for more people with skills in this language. Peter Norvig, director of search quality at Google, Inc. Python is fast enough for our site and allows us to produce maintainable features in record times, with a minimum of developers. Cuong Do, Software Architect, YouTube.com

Basisdaten Erscheinungsjahr: 1990 Erfinder: Guido van Rossum Aktuelle Version: 2.5 (19.09.2006) Paradigmen: objektorientiert aspektorientiert funktional Typisierung: stark, dynamisch ( Duck Typing ) Betriebssystem: plattformunabhängig Website: www.python.org Lizenz: Python License (Open Source) Ziele von Python Python als einfache und übersichtliche Skriptsprache dennoch mächtiger Funktionsumfang kostenlos verfügbar und individuell anpassbar in andere Sprachen integrierbar für tägliche Aufgaben geeignet kurze Entwicklungszeiten und hohe Wartbarkeit

Typisierung Werte von Variablen bekommen dynamisch einen Typ zugewiesen. Zahlen sind untereinander implizit umwandelbar. Typanpassung zwischen Zahlen und Strings muss explizit sein. Beispiel: >>> a = 1 >>> b = 2 >>> print a + b TypeError: unsupported operand type(s) for +: int and str >>> print str(a) + b 12 >>> print a + int(b) 3

Strukturierung durch Einrücken für Code-Blöcke werden keine Klammern (z.b. {...}) oder Schlüsselwörter (z.b. do...od) genutzt werden durch gleichmäßiges Einrücken (Leerzeichen) definiert Anweisungen sind durch Zeilenumbruch trennbar Vorteil: klare und gut lesbare Struktur, weniger Strukturzeichen Nachteil: Umstand und Einschränkung Struktur-Vergleich in C: int fakultaet(int x) { if(x<=1) return 1; else { return x*fakultaet(x-1); } } in Python: def fakultaet(x): if (x <= 1): return 1 else: return x * fakultaet(x - 1)

Verzweigungen Die if-anweisung ersetzt, durch den mittleren optionalen elif - Teil, switch...case... - Anweisungen anderer Sprachen. Beispiel: if (x < 0): y = 1 elif x == 0: y = 2 elif x == 1: y = 3 else: y = 4

Schleifen Die for-anweisung iteriert über Elemente einer Sequenz, beispielsweise über eine Liste, die mit der range()-funktion erstellt werden kann. Die while-anweisung wiederholt einen Block so lange, wie ein logischer Ausdruck wahr ist. for und while im Vergleich >>> range(1,6) [1, 2, 3, 4, 5] >>> for x in range(1,6): >>> print x, 1 2 3 4 5 >>> x = 0 >>> while x < 10: >>> x = x + 1 >>> print x, 1 2 3 4 5 Ausnahmebehandlung Das try-statement ist für das Testen von Fehlerbedingungen gedacht. Beispiel >>> x = 0 >>> try:... print 1.0/x... except ZeroDivisionError:... print Division durch Null.... else: # falls try erfolgreich ist... print Keine Division durch Null.... finally: # wird immer ausgeführt... print Eine Division fand statt. Division durch Null. Eine Division fand statt.

Funktionen Mit def lassen sich Funktionen definieren. Funktionsrümpfe dürfen nicht leer sein. (stattdessen: pass) Beispiel # keine Angabe eines Rückgabewertes nötig >>> def returnsomething():... return something # Parameter können Default-Werte haben >>> def fun(a, b=2):... print a, b >>> fun(1) # Funktionsaufruf 1 2 # direkte Bezug auf formale Parameter >>> fun(a=1, b=3) 1 3

Listen Eine Liste kann Einträge von verschiedenen Typen haben. Man kann sie verändern, teilen, konkatenieren und verschachteln. Beispiel >>> a = [ hallo,123,13.37] >>> a # Ausgabe der Liste [ hallo,123,13.37] >>> a[0] # der 1. Wert hallo >>> a[1:2] # Teilbereich x: 1 <= x < 2 123 >>> a[2] = 1337 # Listeneinträge sind änderbar Funktionen für Listen Durch die Kombination von a.append() und a.pop(0) bzw. a.pop() lässt sich eine Queue bzw. ein Stack simulieren. Beispiel >>> a = [1.5, 2, 2, 3.5] >>> a.count(2) # Häufigkeit von Wert 2 2 >>> a.append(4) # füge 4 ans Ende an >>> a.pop(0), a.pop() # lösche ersten/letzten Wert [1.5, 4] >>> a.insert(2, -1) # Wert -1 an Index 2 einfügen

Dictionary Ein Dictionary ist ein assoziatives Array von der Form <key,value>. Der Typ der Keys kann verschieden sein. Beispiel >>> dict = { anton =123, 456= bert } >>> dict[ carl ] = 789 # neuer Eintrag >>> dict[ anton ] # Abfrage 123 >>> del dict[ anton ] # Eintrag löschen >>> dict # Ausgabe {456: bert, carl : 789} Mehr über Funktionen Es gibt 2 spezielle Funktionsparameter, die eine Liste bzw. ein Dictionary repräsentieren. Gefüllt werden beide mit übergebenen Werten oder Tupeln, die den vorhandenen Parameter nicht zugewiesen werden konnten. Beispiel # *args: eine Liste von Werten # **kwargs: ein Dictionary mit <key,value>-tupeln >>> def fun(a, b=2, *args, **kwargs): print a, b, args, kwargs >>> fun(1, 3, 6, 7, x=8, y=9) 1 3 (6, 7) { y : 9, x : 8}

Funktionale Programmierung Nachfolgend ein Beispiel für eine Funktion höherer Ordnung. Beispiel: >>> def add_and_print_maker(x):... def temp(y):... print "%d + %d = %d" % (x, y, x+y)... return temp >>> add_and_print_maker(1)(2) 1 + 2 = 3

Funktionen für die Funktionale Programmierung Zwei eingebaute Funktionen für die Verarbeitung von Listen: Beispiel: # map(func, sequenz) ruft jeweils func(x) auf # Ergebnisse werden in einer Liste gespeichert >>> def quad(x): return x*x >>> map(quad, range(1, 6)) [1, 4, 9, 16, 25] # reduce(func, sequenz, init) ruft func(x,y) auf # x ist das Ergebnis vom letzten return (Start:init) >>> def add(x,y): return x+y >>> reduce(add, range(1, 6), 0) 15 # = ((((0+1)+2)+3)+4)+5

Module In Python lassen sich externe Skripte und ihre Funktionen durch import... bzw. durch from... import... einbinden. Beispiel # Datei math1.py def quad(x): return x*x def cube(x): return x*x*x # Modul-Import >>> import math1 >>> math1.quad(2) 4 # Funktionen-Direktimport >>> from math1 import quad,cube >>> cube(2) 8 Standardbibliotheken Philosophie: Batteries included unterstützt viele Standardformate und -Protokolle (insbesondere Internet-Anwendungen) Plattformunabhängigkeit aber auch Plattformspezialisierungen gute Anbindung zu anderen Programmiersprachen (z.b. zur GUI-Erstellung)

Objektorientierung Aus Klassen werden Objekte gebildet. Das erste Argument einer Methode ist immer explizit die Objekt-Instanz selbst. Sie wird meist self genannt. In Python ist Mehrfachvererbung und das Überschreiben von Methoden möglich. Beispiel: >>> class Math:... def init (self,x): # Konstruktor... self.x = x # self.x ist Objektvariable... def quad(self):... return self.x * self.x >>> m = Math(5) # Instanziierung >>> m.quad() 25

Eigene Erfahrungen Python als Standardskriptsprache bei dspace Skripte für verschiedenste Problemstellungen von unterschiedlicher Größe Schwerpunkt ist die Automatisierung verschiedenster Programme (Word, Excel, Datenbanken, dspace-produkte) Ziele von Python (Lesbarkeit, Einfachheit, Wartbarkeit) werden erfüllt Referenzen http://python.org/ Python Software Foundation. http://de.wikipedia.org/wiki/python_ (Programmiersprache) Wikimedia Foundation Inc.