Monty Python‘s Flying Circus

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
der Universität Oldenburg
der Universität Oldenburg
OStR Dipl. Ing. Carsten Kraft
Ausführen.
Forschungszentrum caesar
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
Imperative Programmierung -Entwicklungswerkzeuge
Objektorientierte Programmierung
FH-Hof Einbindung von JavaScript Anweisungen
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Funktion defined Die Funktion defined testet, ob eine Variable einen anderen Wert als undef enthält. Ist der Wert undef, so wird falsch zurückgegeben,
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Die Skriptsprache Lua Softwaretechnologie II.
Perl-Grundlagen Teile der Präsentation von A. Grupp,
Zusammenfassung Vorwoche
Die Skriptsprache Perl (2) Wolfgang Friebel DESY Zeuthen.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Methoden 1 Methoden. 2 int dezi = Integer.parseInt(args[0]); boolean vz = (dezi>=0); dezi = Math.abs(dezi); String Bin = ""; do { } while.
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Einführung in die Programmierung Datensammlung
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Java programmieren mit JavaKara
Einführung in das Programmieren mit JavaScript Mag. Andreas Starzer weloveIT – EDV Dienstleistungen.
Einführung in die Programmiersprache Java
Pascal Schmidt 25. November 2010
Projektarbeit PHP 5.3 / MySQL & Content Management Systems
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Java und Eclipse.
Proseminar Programmiersprachen Python
Informatik 1 Letzte Übung.
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
Informatik II Grundlagen der Programmierung Programmieren in C Programmstrukturen / Kontrollstrukturen Hochschule Fulda – FB ET Sommersemester 2014.
Einführung in PHP.
Einführung in PHP 5.
MODULA-2.
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
BMEVIEEA100 Grundlagen der Programmierung
PHP: Operatoren und Kontrollstrukturen
Kommandozeile und Batch-Dateien Molekulare Phylogenetik – Praktikum
SFZ Sj 13/14 GZG FN W.Seyboldt 1 SFZ FN Sj. 13/14 Python Grundlagen.
SFZ FN Sj. 13/14 Python Grundlagen InfK12 Sj 13/14 GZG FN W.Seyboldt.
SFZ FN Sj. 13/14 Python 1 Grundlagen Inf K1/2 Sj 13/14
SFZ FN Sj. 13/14 Python 3 Rekursion Inf K1/2 Sj 13/14
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
(Syntax, Strings/Zahlen, Variablen, Arrays)
Java-Kurs Übung Besprechung der Hausaufgabe
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/ Übungsaufgabe vom Logische Ausdrücke 1.true & false | true 2.(10>2)
Extended Pascal ( Erweitreung von Pascal) Name: Mehmet CELIK Matr :
Einführung in Java PING e.V. Weiterbildung Andreas Rossbacher 24. März 2005.
Extended Pascal Erweiterung von Pascal shadi Behzadipour shadi Shadi behzadipour.
Unterprogramme / Methoden
Java Programme nur ein bisschen objektorientiert.
Datentypen: integer, char, string, boolean
Implementieren von Klassen
Schleifen Datenfelder (Arrays) Verzweigungen
 Präsentation transkript:

Monty Python‘s Flying Circus

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

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

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

Programmieren in der Schule (Lehrplan Informatik, Klasse 10, Achtjähriges Gymnasium im Saarland http://www.saarland.de/dokumente/thema_bildung/INEinfphFeb2006.pdf) 11.11.2010 Pascal Schmidt: Die Programmiersprache Python – Teil I

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

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

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“,….!? ? 11.11.2010 Pascal Schmidt: Die Programmiersprache Python – Teil I

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

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

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

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

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

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

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

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

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: http://docs.python.org/library/stdtypes.html# 11.11.2010 Pascal Schmidt: Die Programmiersprache Python – Teil I

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

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

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

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

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

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

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

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

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

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“)? 11.11.2010 Pascal Schmidt: Die Programmiersprache Python – Teil I

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

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

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

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

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

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

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