Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Monty Pythons Flying Circus. Die Programmiersprache Python - was sie in der Schule leisten kann (Einführung Teil I) Pascal Schmidt 11. November 2010.

Ähnliche Präsentationen


Präsentation zum Thema: "Monty Pythons Flying Circus. Die Programmiersprache Python - was sie in der Schule leisten kann (Einführung Teil I) Pascal Schmidt 11. November 2010."—  Präsentation transkript:

1 Monty Pythons Flying Circus

2 Die Programmiersprache Python - was sie in der Schule leisten kann (Einführung Teil I) Pascal Schmidt 11. November 2010

3 Gliederung 1. Einführung Programmieren in der Schule Python – Fakten, Eigenschaften, Grundlegendes In der Schule: Warum Python (… und nicht Java)? 2. Python im Detail Datentypen Kontrollstrukturen Funktionen und Klassen 3. Getting started with Python 4. Ausgewählte weitere Aspekte Objektorientierung und funktionelles Programmieren … Pascal Schmidt: Die Programmiersprache Python – Teil I3

4 Programmieren in der Schule Pascal Schmidt: Die Programmiersprache Python – Teil I4

5 Programmieren in der Schule Pascal Schmidt: Die Programmiersprache Python – Teil I5 (Lehrplan Informatik, Klasse 10, Achtjähriges Gymnasium im Saarland

6 Python – Eigenschaften und Grundlegendes Pascal Schmidt: Die Programmiersprache Python – Teil I6 Entwicklung: Ursprünglich entwickelt vom niederländischen Softwareentwickler Guido van Rossum am Forschungsinstitut CWI Entwicklungszeit: ca. 12/1989 – 02/1991 Aktuellste stabile Version: 3.1 (Release Nr. 35!), veröffentlicht 2009 Gehört inzwischen der non-profit-organization Python Software Foundation Entstehensbedingungen: Entstanden aus der Unzufriedenheit mit ABC (Erweiterbarkeit, high-level Datentypen, error-handling, usw.), zusätzlich maßgeblich durch Modula-3 beeinflusst

7 Python – Eigenschaften und Grundlegendes Ziele / Vorteile von Python: Einfach, aufgrund prägnanter und leicht verständlicher Syntax, und dennoch mächtig Übertragbar, nicht an eine spezielle Plattform gebunden. Interpretierte Skriptsprache, keine Kompilierung in plattformabhängigen Code und Linken von Unterprogrammen (ähnlich: Java. Im Gegensatz zu C/C++) RAD (Rapid Application Development)-geeignet. Programme 3 Mal kürzer als in Java, bis zu 10 Mal kürzer als C/C++ Objektorientiert, aber auch andere Programmierparadigma möglich Fehlerbehandlung durch exceptions (ähnlich: Java. Im Gegensatz zu C) Freie Software Gute Erweiterbarkeit (um C/C++ Module, Java- und Perl-Bibliotheken) Pascal Schmidt: Die Programmiersprache Python – Teil I7

8 Warum Python (und nicht Java)? Ein einfaches Programm zur Ausgabe Hello world! – in Java: Relativ viel Code erforderlich, aber noch überschaubar Allerdings: Was versteht der Anfänger unter public, class, static,….!? Pascal Schmidt: Die Programmiersprache Python – Teil I8 ?

9 Warum Python (und nicht Java)? Ein einfaches Programm zur Ausgabe Hello world! – in Python: Pascal Schmidt: Die Programmiersprache Python – Teil I9

10 Gliederung 1. Einführung Programmieren in der Schule Python – Fakten, Eigenschaften, Grundlegendes In der Schule: Warum Python (… und nicht Java)? 2. Python im Detail Datentypen Kontrollstrukturen Funktionen 3. Getting started with Python 4. Ausgewählte weitere Aspekte Objektorientierung und funktionelles Programmieren … Pascal Schmidt: Die Programmiersprache Python – Teil I10

11 Datentypen Primitive Datentypen: Integer (Ganzzahl) : Fließkommazahl (float): ebenfalls in der Länge theoretisch unbeschränkt, Eingabe wie Integer, die Nachkommastellen durch einen Punkt abtrennen, z.B Zeichenkette (String): Wird gebildet, indem man Zeichenfolgen zwischen Apostrophe oder Anführungszeichen setzt, z.B. einString Besonderheiten hinsichtlich Escape-Sequenzen, Unicode, usw.: Siehe Documentation ( oder Literaturliste (folgt) Pascal Schmidt: Die Programmiersprache Python – Teil I11 Plain Integer: begrenzter Wertebereich (32 Bit) Long Integer: theoretisch unbeschränkt Unterscheidung: suffix-L, z.B. 45L

12 Datentypen Pascal Schmidt: Die Programmiersprache Python – Teil I12 Operatoren/Funktionen für Primitive Datentypen: Python stellt eine ganze Reihe vordefinierter Operatoren/Funktionen zur Verfügung, um mit den primitiven Datentypen arbeiten zu können: Die üblichen Zahloperatoren: {+, -, *, /, % (Modulo), ** (Potenz) } Weitere nützliche Funktionen: pow(i, j) entspricht i**j cmp(x,y) Für Strings im Wesentlichen: Verkettungsoperator + Len()-Funktion zur Ermittlung der Länge eines Strings

13 Datentypen Komplexe Datentypen: 1) Listen (Arrays) Kette primitiver Datentypen, Erzeugungsschema: ArrayName = [El1,EL2,…,ElN] Zugriff mittels Identifikator und Index. Viele nützliche, vordefinierte (u. selbsterklärende) Methoden: append(x), count(x), index(x), insert(i,x), remove(x), pop([i]), reverse(), len(array) Details: siehe documentation (http://docs.python.org/tutorial/datastructures.html) Pascal Schmidt: Die Programmiersprache Python – Teil I13

14 Datentypen Komplexe Datentypen: 1) Listen (Arrays) Keine Unterscheidung zwischen Liste und (fixem) Array wie in JAVA TM Spezialkonstrukte (z.B. FIFO/Keller-Speicher) lassen sich leicht realisieren Eine nützliche Funktion (z.B. bei for-Schleifen in Kombination mit der len()-Funktion): range(Anfang, Ende, Schritt) Pascal Schmidt: Die Programmiersprache Python – Teil I14

15 Datentypen Komplexe Datentypen: 2) Assoziative Listen (Dictionary) Sammlung von Schlüssel(key) – Wert(value) Paaren. Syntax zur Erzeugung: dictionary = {key:value, key1:value1,…,keyN:valueN} Zugriff auf die Liste nach dem Schema Dictionary[Schlüssel] : Selbsterklärende, vordefinierte Funktionen für Dictionarys: items(), keys(), values(), has_key(k) Pascal Schmidt: Die Programmiersprache Python – Teil I15

16 Datentypen Komplexe Datentypen: 2) Assoziative Listen (Dictionary) Erzeugte Dictionarys lassen sich mit der Funktion update(dic) verändern. Effekt: neue Einträge aus dic werden übernommen, bereits existierende mit gleichem Schlüssel überschrieben Element löschen: del(Dictionary[Schlüssel]) Anzahl der Elemente bestimmen: len(Dictionary) Pascal Schmidt: Die Programmiersprache Python – Teil I16

17 Datentypen Komplexe Datentypen: 3) Weitere Datentypen (Auswahl) Tuples (read only list) Set Frozenset (read only set) … Weitere Details: Pascal Schmidt: Die Programmiersprache Python – Teil I17

18 Kontrollstrukturen 1) Blöcke Kontrollstrukturen bestehen häufig aus mehreren Anweisungen, die in Blöcken zusammengefasst werden. (In Java: Mithilfe von Klammerung) Code-Beispiel JAVA: Pascal Schmidt: Die Programmiersprache Python – Teil I18 Korrekt und übersichtlich korrekt und unübersichtlich Python erzwingt eine übersichtliche Darstellung indem Blöcke durch gleichmäßiges Einrücken der einzelnen Anweisungen gebildet werden.

19 Kontrollstrukturen 2) Boolesche Ausdrücke und Vergleichsoperatoren Wahrheitswerte wahr und falsch, dargestellt durch 1 und 0. Mittels Vergleichsoperatoren (, >=, ==, !=) und logischen Operatoren (not, or, and) lassen sich boolesche Ausdrücke bilden, die zu 0 oder 1 evaluieren Allerdings haben in Python auch andere Werte Wahrheitswerte: None, 0, leere Sammlungen und assoziative Listen evaluieren zu 0 Alle anderen Werte evaluieren zu Pascal Schmidt: Die Programmiersprache Python – Teil I19

20 Kontrollstrukturen 3) If - Anweisung Allgemeine Syntax: if Ausdruck: Aktion(en) elif Ausdruck: Aktion(en) else: Aktion(en) Beispiel: Pascal Schmidt: Die Programmiersprache Python – Teil I20 elif- und else-Klausel optional

21 Kontrollstrukturen 3) while - Schleife Allgemeine Syntax: while Ausdruck: Aktion(en) else: Aktion(en) Beispiel: Frage für Füchse: Wozu die else-Klausel in der while-Schleife? Pascal Schmidt: Die Programmiersprache Python – Teil I21 else-Klausel optional, wird ausgeführt wenn Bedingung nicht erfüllt ist

22 Kontrollstrukturen 3) for - Anweisung Allgemeine Syntax: for Name in Sammlung: Aktion(en) else: Aktion(en) Erklärung: Iteration über alle Elemente in der Sammlung. Pro Durchlauf wird dem Namen genau ein Element aus der Sammlung zugeordnet. Beispiel: for a in hello: print(a) else: print(world) Pascal Schmidt: Die Programmiersprache Python – Teil I22 else-Klausel optional, wird ausgeführt wenn Iteration vollständig durchgeführt Ausgabe?

23 Kontrollstrukturen 3) for - Anweisung Das versprochene Beispiel für das sinnvolle Zusammenwirken der range()- und len()-Funktionen in einer for-Schleife: Pascal Schmidt: Die Programmiersprache Python – Teil I23

24 Kontrollstrukturen 4) Sprunganweisungen Steuerung der Ausführung einer Schleife (while oder for), um diese entweder verlassen zu können oder zur nächsten Iteration zu springen Realisierung: break und continue (analog zu JAVA). Beide Anweisungen im Einsatz: Pascal Schmidt: Die Programmiersprache Python – Teil I24

25 Funktionen 1) Definition eigener Funktionen Allgemeine Syntax: def Name (Arg1,…,ArgN): docstring FunctBody Funktionen haben Rückgabewerte! Wird nicht explizit eine Rückgabe angegeben, erfolgt eine implizite Rückgabe von None. Explizite Rückgabe: return Mit der return-Anweisung wird die Funktion beendet. Der return-Wert wird ausgegeben oder kann als Wert in eine andere Funktion eingehen Pascal Schmidt: Die Programmiersprache Python – Teil I25 Argumente ohne Typangabe

26 Funktionen 2) Funktionen mit variabler Argumentenliste – 1. Möglichkeit Bietet sich an, falls Anzahl der (gleichartigen) Argumente, mit der die Funktion aufgerufen wird, nicht klar ist. Syntax: Parameter, dem mehrere Werte (als Tupel) zugeordnet werden mit einem (*) kennzeichnen. Beispiel: def alleBegruessen (anrede, *leute): if len(leute) == 0: print(keiner da!) return for anybody in leute: print(anrede+anybody) Pascal Schmidt: Die Programmiersprache Python – Teil I26

27 Funktionen 3) Funktionen mit variabler Argumentenliste – 2. Möglichkeit Bietet sich an, falls Anzahl der (gleichartigen) Argumente, mit der die Funktion aufgerufen wird, nicht klar ist und Argumente im Dictionary- Format übergeben werden sollen Syntax: Parameter, dem mehrere Werte (als Tupel) zugeordnet werden mit einem (**) kennzeichnen. Beispiel: def alleBegruessen2 (**args): if len(args) == 0: return for name in args.keys(): print(args[name]+ +name+!) Was liefert alleBegruessen2(Martin=Tag, Peter=Grüß Gott) ? Pascal Schmidt: Die Programmiersprache Python – Teil I27

28 Funktionen 4) No lunch for free theorem – Leere Blöcke? In JAVA geht das ohne Probleme: In Python: Blöcke entstehen durch Einrücken. Wie rückt man etwas ein, was gar nicht existiert? Eigens dafür gibt es die pass-Anweisung. Damit kann man in Definitionen, Schleifen, if-Anweisungen, usw. das Nichtstun simulieren: def doNothing(): pass Pascal Schmidt: Die Programmiersprache Python – Teil I28

29 Gliederung 1. Einführung Programmieren in der Schule Python – Fakten, Eigenschaften, Grundlegendes In der Schule: Warum Python (… und nicht Java)? 2. Python im Detail Datentypen Kontrollstrukturen Funktionen 3. Getting started with Python 4. Ausgewählte weitere Aspekte Objektorientierung und funktionelles Programmieren … Pascal Schmidt: Die Programmiersprache Python – Teil I29

30 Getting started with Python UNIX-Systeme: Python häufig vorinstalliert. Testen: Auf Kommandozeile (Konsole) python eingeben Ansonsten Download der Version 3.1: Verfügbar als Windows Installer und source tarball für LINUX Pascal Schmidt: Die Programmiersprache Python – Teil I30

31 Getting started with Python Ausführungsmodi 1. Möglichkeit: Python-Interpreter im interaktiven Modus. Eingabe wird sofort als Befehl interpretiert Schnellste Variante, allerdings ungeeignet für ernsthafte Programme Aufruf aus Windows: Eingabeaufforderung oder aus Python-Verzeichnis Python (command line) Pascal Schmidt: Die Programmiersprache Python – Teil I31

32 Getting started with Python Ausführungsmodi 2. Möglichkeit: Anweisungen im Editor schreiben und als Datei mit Endung.py abspeichern (Python-Skripte). Editor beliebig. Keine zusätzliche Syntax im Vergleich zum direkten Interpreter Einsatz notwendig. Ausführen eines Skriptes: Doppelklick auf entsprechende Datei oder (in der Eingabeaufforderung) aus Verzeichnis Aufruf python Dateiname Pascal Schmidt: Die Programmiersprache Python – Teil I32

33 Getting started with Python IDLE – Entwicklungsumgebung für Python Ist bereits im Python-Package enthalten Start unter UNIX: [ ~ ]$ /usr/src/Python-3.1/Tools/idle/idle.py Start unter Windows: Im Python-Ordner IDLE (Python GUI) auswählen Nicht so kompliziert wie Eclipse, intuitiv zu bedienen. Skripte schreiben, speichern, ausführen und laden direkt aus IDLE möglich. Sehr gut geeignet für Windows-Benutzer, auch zu Debugging-Zwecken Pascal Schmidt: Die Programmiersprache Python – Teil I33

34 Getting started with Python Zum Ausprobieren: Schreibt eine Funktion, die für eine Zahl n bestimmt, ob es sich um eine Primzahl handelt. Falls nicht, soll eine Zerlegung von n angegeben werden. Lösung: Pascal Schmidt: Die Programmiersprache Python – Teil I34


Herunterladen ppt "Monty Pythons Flying Circus. Die Programmiersprache Python - was sie in der Schule leisten kann (Einführung Teil I) Pascal Schmidt 11. November 2010."

Ähnliche Präsentationen


Google-Anzeigen