Programmierung. in Python. richard rascher-friesenhausen. richard.rascher-friesenhausen@hs-bremerhaven.de. 14. März 2012. Inhalt



Ähnliche Dokumente
Programmierung. PRG, SS 08 March 19, Inhalt. in Python. richard rascher-friesenhausen.

Programmierung. HS Bhven, FB1, Studiengang Medizintechnik SS 14, MT-B 4. richard rascher-friesenhausen

1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

4.A Programmierung. Bausteine der Programmierung: Problemformulierungen Algorithmen Implementierungen Testen Dokumentieren

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Algorithmen und Programmieren II Einführung in Python

Installation und Inbetriebnahme von Microsoft Visual C Express

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Informatik Java-Programmierkurs im Rahmen der Berufs- u. Studienorientierung für Schüler. Joliot-Curie-Gymnasium GR 2010 Nico Steinbach

Vorkurs Informatik WiSe 15/16

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Programmiersprachen und Programmierkonzepte

DLLs (dynamic loaded libraries) mit MingW erstellen

Informatik 1 Tutorial

Programmieren was ist das genau?

Version 0.3. Installation von MinGW und Eclipse CDT

4D Server v12 64-bit Version BETA VERSION

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

Informatik I Tutorial

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

Grundbegriffe der Informatik

Einführung in Eclipse und Java

Primzahlen und RSA-Verschlüsselung

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

Was man mit dem Computer alles machen kann

Algorithmen mit Python

Objektorientierte Programmierung

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Programmierung für Mathematik (HS13)

Einführung in die Informatik Tools

Informatik I. Übung 01. Olga Diamanti

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

Grundlagen. Kapitel 1

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

SEP 114. Design by Contract

VBA-Programmierung: Zusammenfassung

Das Handbuch zu KAppTemplate. Anne-Marie Mahfouf Übersetzung: Burkhard Lück

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Python SVN-Revision 12

2D22 Prinzipien der Softwareentwicklung. Prinzipien der Softwareentwicklung S. Strahringer 1

VB.net Programmierung und Beispielprogramm für GSV

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Installation OMNIKEY 3121 USB

Programmierkurs Java

Windows 10 > Fragen über Fragen

Liesmich zum Kurs: Programmieren in der Bioinformatik mit Perl Konfigurierung der Programmierumgebung

Einführung in PHP. (mit Aufgaben)

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

LEHRSTUHL FÜR DATENBANKEN

1 Mathematische Grundlagen

Überblick. Lineares Suchen

Kapitel 1: Einführung

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Das Persönliche Budget in verständlicher Sprache

Einführung in die Informatik II

Informatikgrundlagen (WS 2015/2016)

Lehrstuhl Informatik VI Grundzüge der Informatik * WS 2008/2009 Prof. Dr. Joachim Biskup

Was meinen die Leute eigentlich mit: Grexit?

MetaQuotes Empfehlungen zum Gebrauch von

Leichte-Sprache-Bilder

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

SMART Newsletter Education Solutions April 2015

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Java Script für die Nutzung unseres Online-Bestellsystems

Das Leitbild vom Verein WIR

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Robot Karol für Delphi

Objektorientierte Programmierung. Kapitel 0: Begrüssung

Anwendungsbeispiele Buchhaltung

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python.

Diese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten!

Kontrollstrukturen - Universität Köln

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Allgemeine Informationen zum Praktikum

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

1. License Borrowing Verfahren

Octave für Windows. Leichte Variante (kein Cygwin installiert)

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

Einführung in die Programmierung

I.1 Die Parrot Assemblersprache

Zählen von Objekten einer bestimmten Klasse

PROBLEME BEIM INSTALLIEREN REALTEK HD AUDIO TREIBER

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Java: Vererbung. Teil 3: super()

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Datensicherung. Beschreibung der Datensicherung

Verwendung des IDS Backup Systems unter Windows 2000

Java Einführung Programmcode

Woche 1: Was ist NLP? Die Geschichte des NLP.

Einführung zu den Übungen aus Softwareentwicklung 1

Python ist leicht zu erlernen, unterstützt mehrere Programmierparadigmen und ist klar strukturiert.

Zeichen bei Zahlen entschlüsseln

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Bauteilattribute als Sachdaten anzeigen

Installation und Inbetriebnahme von SolidWorks

Institut für Telematik Universität zu Lübeck. Programmieren. Kapitel 0: Organisatorisches. Wintersemester 2008/2009. Prof. Dr.

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Transkript:

Programmierung in Python richard rascher-friesenhausen richard.rascher-friesenhausen@hs-bremerhaven.de 14. März 2012 Inhalt Organisatorisches Allgemeines Python PRG, SS 12 March 14, 2012 1

Organisatorisches Termin: Vorlesung: Do. 08:00 09:30, K02 Übung: Mi. 13:45 17:00, Rechnerraum MT (2 Gruppen) Kontakt: am besten über richard.rascher-friesenhausen@hs-bremerhaven.de Sprechstunde im Raum M5050 nach Vereinbarung oder nach der Veranstaltung. Leistungsnachweis: über wöchentliche Hausaufgaben (in dreier Gruppen!) Lasse eine Liste rundgehen. Bitte eintragen mit Email-Adresse für Mailverteiler. Aktuelle Informationen zur Veranstaltung findet man unter http://www.mevis.fraunhofer.de/ richard/bremerhaven/ss12/ Allgemeines Was ist Programmieren? Software-Engineering Problemformulierung Algorithmen Programmiersprachen Fehler & Testen Dokumentieren Inhalte der Vorlesung und der Übung Ein schneller Überblick auf was Programmieren ist, was dafür gebraucht wird und was wir machen werden. PRG, SS 12 March 14, 2012 2

Was ist Programmieren? Was ist Programmieren? Programmieren, oder besser Computer Programmieren, ist der Prozeß, Instruktionen für einen Computer zu schreiben, die den Computer veranlassen, eine vorbestimmte Aufgabe zu erledigen. Bausteine der Programmierung sind Problemformulierungen Algorithmen Implementierungen Testen Dokumentieren Ergebnis ist Software : lauffähige Programme oder verwendbare Bibliotheken. Software-Engineering Software-Engineering Software Engineering beschreibt eine systematische Vorgehensweise für die Entwicklung von Software Betrieb von Software Pflege von Software Sterben von Software Begleitet also die gesamte Lebenszeit einer Software ( software life-cycle ). Verschiedene Systematiken für einzelne Bausteine. Betrachten hier nur Entwicklung von Software (Programmieren). Systematiken notwendig/sinnvoll für Arbeiten im Team: Jeder weiß, wer was wie macht. Einhalten von Systematiken gehört zum Qualitätsmanagment oder kurz QM. Beispiele für Systematiken sind Extreme Programming oder Scrum. PRG, SS 12 March 14, 2012 3

Problemformulierung Problemformulierung Bevor man an die Lösung des Problems geht, sollte genau geklärt sein, was das Problem wirklich ist! Algorithmen Algorithmen Ganz grob ist ein Algorithmus ein Lösungsverfahren für eine Klasse von Problemen. Vergleichbar einem Rezept, Prozeß, Methode, Technik, Prozedur, Routine. Beispiele für Problemklassen und ihre Algorithmusidee Bestimmen des Größten Gemeinsamen Teilers: Euklidischer Algorithmus Lösung einer quadratischen Gleichung: p-q-formel Lösung eines linearen Gleichungssytems: Sortieren von Patientendaten: Gauss-Algorithmus Sortieren durch Auswahl öffnen einer Tür: trainierter Reflex?... (Wirklich wichtige Algorithmen findet man unter Dongarra, Sullivan (2000): Top ten algorithms of the century, IEEE, Comput. Sci. Eng.) PRG, SS 12 March 14, 2012 4

Algorithmen Formale Definition (nach Knuth 1): Ein Algorithmus ist ein endlicher Satz von Anweisungen zur Lösung einer gegebenen Klasse von Aufgaben. Zusätzlich muß ein Algorithmus die folgenden fünf Kriterien erfüllen: 1. Endlichkeit (finiteness): Ein Algorithmus terminiert in allen Fällen nach einer endlichen Anzahl von Schritten. 2. Bestimmtheit (definitness): Jede Anweisung eines Algorithmus ist klar, unzweideutig und durchführbar. 3. Eingabe (input): Ein Algorithmus hat Null oder mehr Eingaben: Objekte, die zu Beginn oder zur Laufzeit extern eingegeben werden. 4. Ausgabe (output): Ein Algorithmus hat eine oder mehr Ausgaben: Objekte, die in einer spezifischen Relation zur Eingabe stehen. 5. Effizienz (effectiveness): Jede Anweisung eines Algorithmus muss so grundlegend sein, dass sie im Prinzip von jedermann mit Papier und Bleistift in endlicher Zeit ausgeführt werden kann. 1 The Art of Computer Programming I, pp. 4 Algorithmen Zwischen Algorithmus und Programm wird in der Informatik unterschieden. Ein Programm muss beispielsweise nicht endlich sein. Etwa wartet eine vergessene grafische Oberfläche endlos auf Benutzereingaben, wenn das Betriebssystem des Computers nicht abstürzt. Darüber hinaus muss das Programm so formuliert sein, dass es auf einem Rechner lauffähig ist. Einen Algorithmus kann auf verschiedene Weisen formuliert werden: in natürlicher Sprache, in Pseudo Code, in grafischer Darstellung (Struktogramm, Flußdiagramm),... PRG, SS 12 March 14, 2012 5

Algorithmen Problem: Finde alle Lösungen x R der quadratischen Gleichung x2 + p x + q = 0, p, q R Lösungsidee: x1,2 p = ± 2 r p 2 q 2 Algorithmus: Input: Koeffizienten p und q. 2 1 Bestimme Radikanden r = p2 q. 2 if r < 0 then 3 Belege x1 = x2 =None 4 Setze Fehlercode auf keine reelle Nullstelle. 5 elseif r = 0 then 6 Bestimme x1 = x2 = p2. 7 Setze Fehlercode auf doppelte reelle Nullstelle. 8 else 9 Bestimme x1 = p2 r,x2 = p2 + r. 10 Setze Fehlercode auf zwei reelle Nullstellen. 11 end.if Output: Nullstellen x1, x2 und Fehlercode Algorithmen Problem: Sortiere einen Satz von n 1 ganzen Zahlen entsprechend ihrer Größe beginnend mit der kleinsten. Lösungsidee: Finde von den momentan unsortierten Zahlen die kleinste und plaziere sie als nächste in die sortierte Liste. Algorithmus: Input: n ganze Zahlen 1 Lese n Zahlen in das Feld a0,..., an 1 ein. 2 for i = 0, 1,..., n 2 do 3 Suche das kleinste Element aus ai,..., an 1. 4 Nehme an, es steht in amin. 5 Vertausche ai mit amin. 6 end.for Output: Sortiertes Feld a0,..., an 1 ganzer Zahlen Falls Zahlen gleich sind, wählen wir die erste Position. PRG, SS 12 March 14, 2012 6

Algorithmen Woher kommt der Name? Woher kommt der Name? Algorithmus ist lateinische Fassung eines arabischen Namens: Mohammad ibn-mus al-khwarizmi (780 850) Gelehrter am Hofe des Kalifen Al-Ma mun in Bagdad. Mathematisches Werk Hisab al-gabr wal-muqdala Rechenverfahren durch Ergänzen und Ausgleichen. Drei Jahrhunderte später lateinische übersetzung in Spanien. Beginnt mit Dixit Algoritmi... Es sprach Algoritmi... Programmiersprachen Programmiersprachen Wie rede ich mit meinem Computer? Wie bringe ich ihm bei, das zu tuen, was ich von ihm will? Wie setze ich konkret einen Lösungsalgorithmus auf dem Rechner um? Brauchen eine Programmiersprache. Diese fallen in drei Kategorien: 1. Maschinensprache, 2. Assembler und 3. Höher Programmiersprache. PRG, SS 12 March 14, 2012 7

Programmiersprachen Maschinensprache Maschinensprache Einzige Sprache, die direkt vom Computer verstanden wird Definiert durch das Hardware Design des Rechners: maschinenabhängig. Unverständlich für den Menschen: Strom von 0en und 1en (wie alle Info im Rechner). Kaum bis garnicht für den Menschen programmierbar. Führte zu den Assemblern. Anfang von hello.exe hexadezimal: 000 010 020 030 040 050 060 070 080 0a0 0b0 0c0 0d0 0e0 0f0 457f 0002 0a2c 0019 8034 0004 80f4 0001 8000 96b4 1000 9704 0004 8108 0004 464c 0003 0018 0101 0001 0006 00c0 0003 0013 0001 06b1 0160 0002 00d8 0004 0020 6c2f 0001 6269 8520 0034 0034 00c0 00f4 0013 06b1 01a8 0704 00d8 0108 0020 6c2f 0020 2d64 0034 0006 8034 0005 80f4 0004 8000 0005 0006 9704 0006 8108 0004 696c 0028 756e Programmiersprachen Assembler Assembler Englisch ähnliche Abkürzungen, die elementare Operationen des Rechners darstellen. Ebenfalls maschinenabhängig Spricht Prozessor, Register und RAM direkt an. Werden in die Maschinensprache übersetzt. Übersetzung geht schnell. Deutlich lesbarer als Maschinencode. Aber immer noch viele Instruktionen für einfache Aufgaben. total = 5 + 4 LDA STA LDA ADD STA 5 num1 4 num1 total Einsatz für System-Software und Speziallösungen: Signalprozessoren, Grafikchips. Führt zu höheren Programmiersprachen. PRG, SS 12 March 14, 2012 8

Programmiersprachen Höhere Programmiersprachen Höhere Programmiersprachen Einzelne Anweisungen führen komplexe Augaben aus. Maschinenunabhängig. Compiler Sprachen: Werden nach Maschinensprache übersetzt: Compiler. Übersetzung benötigt relativ viel Zeit. Schnelle Laufzeit der Programme. Interpreter Sprachen: Lassen Programme ohne Compilierung laufen. Rapid Development. Deutlich langsamere Laufzeiten der Programme. Für beide gilt: Anweisungen sind lesbar für den Menschen. Klingen nach alltäglichen Englisch. Enthalten übliche mathematische Notationen. Programmiersprachen Höhere Programmiersprachen Es gibt viele Hundert verschiedene höhere Programmiersprachen: Ada, Algol, APL, awk, Basic, C, C++, Cobol, Delphi, Eiffel, Euphoria, Forth, Fortran, (HTML), Icon, Java, Javascript, Lisp, Logo, Mathematica, Matlab, Miranda, Modula-2, Oberon, Pascal, Perl, PL/1, Prolog, Python, Rexx, SAS, Scheme, sed, Simula, Smalltalk, Snobol, SQL, Visual Basic, Visual C++, (XML) Siehe zu diesen The Language Guide: http://www.engin.umd.umich.edu/cis /course.des/cis400/ Und Computer Languages History: http://www.levenez.com/lang/ C Dennis Ritchie (Bell Laboratories), C++ Bjarne Stroustrup (Bell Laboratories), Fortran John Backus (IBM), Java James Gosling (Sun Labs), 1971 Juli 1983 November 1954 23. Mai 1995 Mathematica Stephen Wolfram (Wolfram Research), 1988 Pascal Nikolaus Wirth (ETH), 1970 Python Guido Van Rossum (Stichting Mathematisch Centrum), 1991 Ruby Yukihiro Matsumoto (?), 24. Februar 1993 Beispiele kommen später. Aber nicht zu allen Sprachen... PRG, SS 12 March 14, 2012 9

Programmiersprachen Höhere Programmiersprachen Was jede höhere Programmiersprache unterstüzt sind Input: Lesen von Werten in das Programm Output: Schreiben von Werten aus dem Programm Mathematik: Rechenoperationen auf Zahlen Bedingungen: Bedingte Ausführung von Anweisungen Wiederholungen: Wiederholte Ausführung von Anweisungen Und das genügt auch, um all das zu programmieren, was gebraucht wird. Was meist noch dazukommt sind Funktionen oder Unterprogramme, Bibliotheken für das modulare Programmieren. Fehler & Testen Fehler & Testen Syntaktische Fehler Laufzeit Fehler Semantische Fehler Testen Programmieren ist die eine Sache. Prüfen, ob das Programm das gestellte Problem wirklich löst, eine andere Sache. Fehler kommen vor! Unterscheidbar in 1. Syntaktische Fehler 2. Laufzeit Fehler 3. Semantische Fehler PRG, SS 12 March 14, 2012 10

Fehler & Testen Syntaktische Fehler Syntaktische Fehler Verstoß gegen die Syntax Regeln der Programmiersprache. Etwa: Falsch geschriebene Namen für Befehle, vergessene Satzzeichen,... Meckert ein Compiler/Interpreter an! Mit Angaben wo und was. Nicht so wild... Müssen korrigiert werden, damit Programm überhaupt läuft. Wohl zu Beginn die häufigsten Fehler. Fehler & Testen Laufzeit Fehler Laufzeit Fehler Machen sich erst zur Laufzeit des Programmes bemerkbar. Etwa: Division durch Null, überschreiben von Speicherbereichen,... Exceptions Brechen das Programm vorzeitig ab. Nicht ganz leicht! Kommen immer wieder vor. Sollten korrigiert oder abgefangen werden. PRG, SS 12 March 14, 2012 11

Fehler & Testen Semantische Fehler Semantische Fehler Etwas ist verkehrt mit den Resultaten. Programm läuft durch. Aber es löst nicht das gestellte Problem. Zumeist Fehler in dem Lösungsalgorithmus oder der Lösungsidee. Auch nicht ganz leicht! Müssen korrigiert werden! Fehler & Testen Testen Testen In jeder Phase der Programmentwicklung sollte getestet werden. Dazu werden gebraucht: Gültige Programmeingaben Zugehörige korrekte Programmausgaben Mit kleinen Beispielproblemen einzelne Funktionen oder Programmzeilen austesten. Im Extremfall zuerst die Tests schreiben, dann erst das Lösungsprogramm (Extreme Programming). Tests automatisieren. Beispiele dazu später. Zumeist wird sich darum gedrückt... Aber: Gehört zum QM. PRG, SS 12 March 14, 2012 12

Dokumentieren Dokumentieren Dokumentation für einen selber und für andere. Dokumentation des Programms 1. was tut es: für Anwender Handbuch 2. wie tut es es: für Entwickler Kommentare im Quellcode Vor dem Dokumentieren wird sich zumeist gedrückt! Zu unrecht. Gehört zum QM. Inhalte der Vorlesung und der Übung Inhalte der Vorlesung und der Übung Natürlich können wir nicht alles machen, was oben angedeutet wurde. Dazu sind eine Menge Spezialvorlesungen erforderlich und auch jahrelanges anwenden und probieren. Wir werden Python lernen (das ist einfach). Wir werden mit Python Programmieren lernen. Abstrakte Datentypen Suchen und Sortieren Rekursion OOP GUI... Wir werden viel progammieren (learning by doing). Wir werden einige Software Engineering Techniken praktisch kennenlernen. Entwerfen Dokumentieren Testen Wir werden vielleicht noch einen Blick auf Java oder C++ werfen. PRG, SS 12 March 14, 2012 13

Python Hello world Geschichte Anwendungsgebiete Resourcen Python verwenden (in der Übung) Ein bischen was zu Python. Wie es aussieht, woher es kommt, welche Hilfen es gibt und wie man dran kommt. Hello world Hello world Traditionell beginnt jedes Lernen einer Programmiersprache mit einem Programm, dass Hello World! auf dem Monitor ausgibt. Wir schauen uns das an in Python, Java und C++. Wer noch mehr Beispiele sehen möchte: Hello, World Page!: http://www2.latech.edu/ acm/helloworld.shtml PRG, SS 12 March 14, 2012 14

Hello world Hello world in C++: hello.cpp // "Hello world!" in C++ #include <iostream> int main(void) { std::cout << "Hello world!" << std::endl; return 1; } Dann compilieren (erzeugt hello.o): C:\> g++ -c hello.cpp Dann linken (erzeugt hello.exe): C:\> g++ -o hello.exe hello.o Zuletzt starten mit C:\> hello Hello world Und nochmal Hello world in Java: hello.java // "Hello world!" in Java class hello { public hello() { } public static void main(string[] args) { System.out.println("Hello world!"); } } Dann compilieren (erzeugt hello.class): C:\> javac hello.java Zuletzt starten mit C:\> java hello PRG, SS 12 March 14, 2012 15

Hello world Zuletzt Hello world in Python: hello.py # "Hello world!" in Python print "Hello world!" Starten mit C:\> python hello.py Und alle drei Programme erzeugen die Ausgabe Hello world! Geschichte Geschichte Entstand 1989, geschrieben von Guido van Rossum. Veröffentlicht 1991 (version 1.5, heute Versionen 2.7, 3.2). Ursprüngliche Idee: Scripting Sprache für Administrationszwecke. Basiert auf den Sprachen ABC (All Basic Code) und Modula3. Benannt nach Monty Python. Schnell wachsende Python Gemeinde. Gut unterstütze und lebende Programmiersprache: Web-Seite: http://www.python.org Dokumentation: http://www.python.org/doc/ News-Group: news:comp.lang.python... PRG, SS 12 March 14, 2012 16

Geschichte Python ist einfach (wirklich... ) aber dennoch eine echte und objektorientierte Programmiersprache eine very-high-level Programmiersprache: high-level Datentypen sind eingebaut modular und erlaubt Wiederverwendeung von Code ist mächtig durch eine Menge von Standardmodulen: io, system calls, sockets, gui,... interpretiert und spart so Zeit während der Entwicklungsphase interaktiv und erlaubt das Experimentieren mit den Sprachfeatures erweiterbar durch C und C++. Jython verwendet Java für Erweiterungen portabel, läuft auf Windows, Linux und MacOS ist kostenlos Anwendungsgebiete Anwendungsgebiete Anwendungsgebiete für Python sind (siehe auch python.org): Web-Programmierung Datenbankanbindungen Grafische Oberflächen Numerische Mathematik, Bioinformatik Netzwerke Softwareentwicklung Python auf dem Handy: Nokia S60. Python für Spiele: Civilization IV. Verknüpfen von Applikationen, Steuern von Applikationen. (Bsp.: MeVisLab) Und natürlich als Einstieg in das Programmieren... Mehr unter http://www.python.org/about/projects/ PRG, SS 12 March 14, 2012 17

Resourcen Resourcen Distributionen Texte Bücher & Dokumentation Resourcen Distributionen Distributionen Python ist freie Software. Sie kann aus dem Internet für den Rechner zu Hause heruntergeladen werden (Windows, Linux, Unix, Mac OS). Adressen dazu sind: Python: http://www.python.org/download/ das Original. ActiveState: http://www.activestate.com/activepython/ eine Distribution mit mehr Windows Tools. Enthought: http://www.enthought.com/products/epd.php eine Distribution mit ganz, ganz viel. PythonXY: http://www.pythonxy.com/download.php noch eine Distribution mit ganz, ganz viel. Die verwenden wir. Jython: http://www.jython.org/project/download.html Python in Java, Python für Java, (Java für Python). Die Distributionen Dritter hinken in der Version dem Original stets ein wenig hinterher... PRG, SS 12 March 14, 2012 18

Resourcen Texte Texte Einfache einführende Texte zu Python sind im Netz frei verfügbar. Etwa: Python Tutorial : http://www.python.org/docs/tut.html Python Tutorial (deutsch) : http://starship.python.net/crew/gherman/publications/tut-de/online /tut/ (älter) Non-Programmers Tutorial For Python : http://www.honors.montana.edu/ jjc/easytut/easytut/ How to Think Like a Computer Scientist : http://www.greenteapress.com/thinkpython.html Learning to program : http://www.freenetpages.co.uk/hp/alan.gauld/ Siehe auch http://www.python.org/doc/newbies.html für eine längere Liste. Resourcen Bücher & Dokumentation Bücher & Dokumentation Es ist kein Buch erforderlich. Wer aber dennoch mal was in einem Buch nachlesen will: How to Think Like a Computer Scientist und Learning to program gibt es auch als Bücher (eng.). Einführung in Python Learning Python, eng. Python in a Nutshell, eng. Oder suche bei www.amazon.de unter python. Oder besuche die nächste grössere Buchhandlung und schmökerere herum. Siehe auch www.python.org/cgi-bin/moinmoin/pythonbooks. PRG, SS 12 March 14, 2012 19

Python verwenden (in der Übung) Python verwenden (in der Übung) Command Line Mode Script Mode IDLE Python kann in zwei Modi verwendet werden: interaktiv auf der Kommandozeile oder als Skript. Darüberhinaus gibt es natürlich auch Entwicklungsumgebungen für Python. Python verwenden (in der Übung) Command Line Mode Command Line Mode Die Kommandozeilenversion von Python wird aufgerufen über C:\> python Danach erschein ein Willkommensgruss und ein neuer Prompt Enthought Edition build 1028 Python 2.3 (#46, Aug 11 2003 09:34:05) [MSC v.1200 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> Siehe auch das Tutorial unter http://www.python.org/docs/tut.html. Alternative: IPython PRG, SS 12 March 14, 2012 20

Python verwenden (in der Übung) Script Mode Script Mode Sollte man schon in einer Datei myfile.py ein kleine Python Programm geschrieben haben, so kann man dieses auch direkt laufenlassen über C:\> python myfile.py Windows: Doppelklick auf das Datei-Icon. Zumeist geht das Fenster nach Abschluss des Skripts sofort wieder zu! Linux: Anfangszeile #!/usr/bin/env python und als Executable eintragen chmod a+x. Dann direkt als Befehl aufrufbar. Python verwenden (in der Übung) IDLE IDLE Zu der Python Distribution gehört auch eine Programmierumgebung oder eine Integrated Development Environment namens IDLE. Eine kurze Einführung gibt es unter http://hkn.eecs.berkeley.edu/ dyoo/python /idle_intro/index_ger.html. Alternativen: Spyder, Eclipse. PRG, SS 12 March 14, 2012 21

PRG, SS 12 March 14, 2012 22