Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Monty Python‘s Flying Circus

Ähnliche Präsentationen


Präsentation zum Thema: "Monty Python‘s Flying Circus"—  Präsentation transkript:

1 Monty Python‘s Flying Circus

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

3 Pascal Schmidt: Die Programmiersprache Python – Teil I
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 I

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

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

6 Python – Eigenschaften und Grundlegendes
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 Pascal Schmidt: Die Programmiersprache Python – Teil I

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 I

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 I

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

10 Pascal Schmidt: Die Programmiersprache Python – Teil I
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 I

11 Pascal Schmidt: Die Programmiersprache Python – Teil I
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. 4.85 Zeichenkette (String): Wird gebildet, indem man Zeichenfolgen zwischen Apostrophe oder Anführungszeichen setzt, z.B. “einString“ Besonderheiten hinsichtlich Escape-Sequenzen, Unicode, usw.: Siehe Documentation (http://docs.python.org/index.html) oder Literaturliste (folgt) Plain Integer: begrenzter Wertebereich (32 Bit) Long Integer: theoretisch unbeschränkt Unterscheidung: „suffix-L“, z.B. 45L Pascal Schmidt: Die Programmiersprache Python – Teil I

12 Pascal Schmidt: Die Programmiersprache Python – Teil I
Datentypen 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 Pascal Schmidt: Die Programmiersprache Python – Teil I

13 Pascal Schmidt: Die Programmiersprache Python – Teil I
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 I

14 Pascal Schmidt: Die Programmiersprache Python – Teil I
Datentypen Komplexe Datentypen: 1) Listen (Arrays) Keine Unterscheidung zwischen Liste und (fixem) Array wie in JAVATM 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 I

15 Pascal Schmidt: Die Programmiersprache Python – Teil I
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 I

16 Pascal Schmidt: Die Programmiersprache Python – Teil I
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 I

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

18 Pascal Schmidt: Die Programmiersprache Python – Teil I
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: 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. Pascal Schmidt: Die Programmiersprache Python – Teil I

19 Pascal Schmidt: Die Programmiersprache Python – Teil I
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 1 Pascal Schmidt: Die Programmiersprache Python – Teil I

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

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

22 Pascal Schmidt: Die Programmiersprache Python – Teil I
Kontrollstrukturen 3) for - Anweisung Allgemeine Syntax: for Name in Sammlung: Aktion(en) else: 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) print(“world“) else-Klausel optional, wird ausgeführt wenn Iteration vollständig durchgeführt Ausgabe? Pascal Schmidt: Die Programmiersprache Python – Teil I

23 Pascal Schmidt: Die Programmiersprache Python – Teil I
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 I

24 Pascal Schmidt: Die Programmiersprache Python – Teil I
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 I

25 Pascal Schmidt: Die Programmiersprache Python – Teil I
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. Argumente ohne Typangabe Pascal Schmidt: Die Programmiersprache Python – Teil I

26 Pascal Schmidt: Die Programmiersprache Python – Teil I
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 I

27 Pascal Schmidt: Die Programmiersprache Python – Teil I
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 I

28 Pascal Schmidt: Die Programmiersprache Python – Teil I
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 I

29 Pascal Schmidt: Die Programmiersprache Python – Teil I
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 I

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 I

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 I

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 I

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 I

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 I


Herunterladen ppt "Monty Python‘s Flying Circus"

Ähnliche Präsentationen


Google-Anzeigen