1 / 34

Monty Python‘s Flying Circus

Monty Python‘s Flying Circus. Die Programmiersprache Python - was sie in der Schule leisten kann (Einführung Teil I). Pascal Schmidt 11. November 2010. Gliederung. 1. Einführung Programmieren in der Schule Python – Fakten, Eigenschaften, Grundlegendes

yagil
Download Presentation

Monty Python‘s Flying Circus

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Monty Python‘s 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 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 http://www.saarland.de/dokumente/thema_bildung/INEinfphFeb2006.pdf) 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. 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. 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. 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. 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. 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. 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. 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. Datentypen Komplexe Datentypen: 3) Weitere Datentypen (Auswahl) • Tuples (read only list) • Set • Frozenset (read only set) • … • Weitere Details: http://docs.python.org/library/stdtypes.html# Pascal Schmidt: Die Programmiersprache Python – Teil I

  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: 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. 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. Kontrollstrukturen 3) If - Anweisung • Allgemeine Syntax: if Ausdruck: Aktion(en) elif Ausdruck: Aktion(en) else: Aktion(en) • Beispiel: elif- und else-Klausel optional Pascal Schmidt: Die Programmiersprache Python – Teil I

  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? else-Klausel optional, wird ausgeführt wenn Bedingung nicht erfüllt ist Pascal Schmidt: Die Programmiersprache Python – Teil I

  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“) else-Klausel optional, wird ausgeführt wenn Iteration vollständig durchgeführt Ausgabe? Pascal Schmidt: Die Programmiersprache Python – Teil I

  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 I

  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 I

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

  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: defalleBegruessen (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. 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. Funktionen 4) No lunch for freetheorem – 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: defdoNothing(): pass Pascal Schmidt: Die Programmiersprache Python – Teil I

  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 I

  30. Getting started with Python • UNIX-Systeme: Python häufig vorinstalliert. Testen: Auf Kommandozeile (Konsole) python eingeben • Ansonsten Download der Version 3.1: http://www.python.org/download/ 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 (commandline)“ 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

More Related