Aufgaben

Die Lösung von mindestens zehn Aufgaben ist verpflichtender Bestandteil der Veranstaltung. Bitte senden Sie Ihre Lösungen (Python-Module) jeweils bis Freitag Abend vor der nächsten Vorlesung (nach dem unten jeweils angegebenen Datum, zu dem die Aufgaben gestellt werden) per E-Mail an h.merz@cyberconcepts.de.

Lösungsansätze für die Aufgaben finden Sie unter Beispiele, Hinweise zur Formulierung bestimmter Aufgabenstellungen in Python unter Beispielcode und Tipps.

Installation

  • Python 2.6 oder 2.7; ev. Python 3.2 (noch keine Unterstützung für Web Frameworks)
  • Twisted 11.0
  • Nevow 0.10
  • Zope 3 / BlueBream
  • Zope 2.12 oder 2.13
  • Plone 4

4.4.11

  • Fakultät - mit und ohne Rekursion; mit interaktiver Benutzereingabe über eine WSGI Anwendung; mit Fehlerbehandlung
  • Klasse Adress-Label, Methode format(): liefert String mit üblichen Informationen (Anrede, Titel, Vorname, Nachname, Straße, PLZ, Ort) mit Zeilenvorschüben; Ausgabeformat entsprechend einem Adressaufkleber auf einem Brief, ohne überflüssige Leerzeilen und -zeichen!
  • Verkehrs-Simulation (s. cybertrain Chapter 4) von der funktions-basierten Form in eine objektorientierte Implementierung überführen

18.4.11

  • Twisted: ein einfacher Job-Scheduler: Liest Datum/Uhrzeit und Kommando aus einer Datei, startet Kommando zur angegebenen Zeit

2.5.11

  • Formular mit Eingabe Personendaten; Realisierung wahlweise als WSGI-Anwendung oder Zope-View, mit Fehlerbehandlung für Geburtsdatum; Ausgabe per print (optional: Speicherung in CSV-Datei)
  • Web-"Taschenrechner": Zwei Eingabefelder, drop-down für Operator, Ausgabefeld für Ergebnis, mit WSGI oder mit einem Zope/BlueBream View/Page Template
  • Implementierung Fibonacci-Reihe (f(x) = f(x-1)+f(x-2)) mit einer Generatorfunktion (s. cybertrain Chapter 18, Zeile 166)

9.5.11

  • Twisted Webserver mit Shutdown-Button + Zeitangabe für das Herunterfahren (absolut oder in der Form "in xx Minuten")
  • Formular mit Eingabe Personendaten als Twisted-Anwendung
  • Web-"Taschenrechner" als Twisted-Anwendung
  • Twisted, Erweiterung twisting.grab: Selektion und Ausgabe von Links auf der abgerufenen Web-Seite mit BeautifulSoup oder lxml
  • Darauf aufbauend: Linkliste als Twisted-Webanwendung: Eingabefeld für URL, Auflistung der gefundenen Links als HTML-Seite
  • Variante hierzu: Extrahieren der Preisinformation zu einem oder mehreren Produkten aus einer vorgegebenen Produkt-Website, z.B. http://www.geizkragen.de/
  • Zope/BlueBream: Adressliste als View (<zope:page ...>) mit einfachem ZPT

16.5.11

  • Monatskalender: Aufbau einer verschachtelten Liste im Format (Beispiel für Mai 2011): [[25, 26, 27, 28, 29, 30, 1], [2, 3, 4, 5, ...], ...]
  • Darstellung Monatskalender auf Web-Seite, über ein Zope Page Template (ZPT)
  • Web-Rechner mit Nevow (zur Verarbeitung von Formular-Variablen s. Tipps)
  • Darstellung Monatskalender mit Nevow
  • Python Imaging Library (PIL): Skalierung einer Grafik

23.5.11

  • Fibonacci-Server mit XML-RPC, Basis BlueBream oder Twisted; fibo(start, end) liefert einen Ausschnitt aus der Fibonacci-Folge
  • Client dazu mit Twisted, Eingabe über Kommandozeile oder Web-Formular
  • Generierung Adressliste im XML-Format mit ZPT (Basis Zope/BlueBream)

30.5.11

  • Zugriff auf MySQL Datenbank: Beispiel für das Absetzen einfacher SQL-Kommandos
  • Twisted: Speicherung Personen-/Adressdaten in SQL-Datenbank
  • Überarbeitung Twisted-Scheduler: Aufruf Betriebssystem-Kommando mit spawnProcess()
  • Summe der ersten 20 Quadratzahlen von Zahlen, die durch 3 teilbar sind, als "Einzeiler" mit einer List Comprehension oder Generator Expression
  • Funktion wordCount(text), liefert ein Dictionary im Format {wort: anzahl, ...}, unter Verwendung geeigneter Dictionary-Methoden (s. Mapping Types)
  • Mail-Template für personalisierte E-Mails unter Verwendung von Platzhaltern: %(name)s (s. String Formatting) oder $name (s. Template Strings), Füllen mit einem Dictionary
  • Aufbau E-Mail-Nachricht mit den üblichen Headern, einem Plain-Text-Teil und einem PDF-Anhang (s. email Package)
  • Versand E-Mail (mit Standard-Library, Twisted, Zope 2 oder Zope 3)
  • Cookie setzen und abfragen: einfache "Hello World"-Seite mit Datum/Uhrzeit des letzten Besuchs (Technik nach Belieben: CGI, WSGI, Twisted, Zope, ...)

Calendar

« February 2012 »
  Mo Tu We Th Fr Sa Su
5 1 2 3 4 5
6 6 7 8 9 10 11 12
7 13 14 15 16 17 18 19
8 20 21 22 23 24 25 26
9 27 28 29