{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Informatische Werkzeuge in den Geistes- und Sozialwissenschaften I\n", "\n", "## Hausaufgabe 8 (Reguläre Ausdrücke & Datei-IO, 60 Punkte)\n", "\n", "**Erschienen:** 07.12.2019 \n", "**Abgabe bis:** 15.12.2019\n", "\n", "Bitte laden Sie Ihre Notebooks bis 23:59 Uhr am Abgabetag in Ihrer Übungsgruppe bei [StudOn](https://www.studon.fau.de) hoch.\n", "\n", "Wenn Ihnen einige der hier verwendeten Konzepte unbekannt sind oder Sie nicht wissen, wie Sie fortfahren sollen, können Sie die [Vorlesungsunterlagen](https://kwarc.info/teaching/IWGS/) zu Rate ziehen oder jederzeit Fragen im [Forum](https://www.studon.fau.de/studon/ilias.php?ref_id=2719645&cmdClass=ilobjforumgui&cmdNode=yf:os&baseClass=ilRepositoryGUI) stellen, im [Tutorium](https://univis.fau.de/form?__s=2&dsc=anew/lecture_view&lvs=forsch/fokomp/izdihu/inform&anonymous=1&dir=tech/IMMD/pkosy&founds=forsch/fokomp/izdihu/inform&nosearch=1&ref=pande&sem=2019w&__e=190) nachfragen, oder Ihrem Tutor eine Mail schreiben." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Aufgabe 8.1 (Reguläre Ausdrücke für \"Krieg und Frieden\", 25 Punkte)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wir haben bereits besprochen, dass es ein großer Vorteil von Computern ist, große Mengen an Daten in sehr kurzer Zeit verarbeiten zu können. Dies ist außerdem ein Feld, in dem reguläre Ausdrücke glänzen, wie wir hier selbst erleben werden. Zusammen mit dieser Aufgabe erhalten Sie eine leicht abgewandelte Version von Lev Tolstois \"Krieg und Frieden\" in englischer Sprache, wie auf [🇩🇪 Project Gutenberg](https://de.wikipedia.org/wiki/Project_Gutenberg) verfügbar (zur Zeit nicht aus Deutschland abrufbar, siehe Wikipedia-Artikel). Dieses Buch enthält mehr als 500.000 Wörter und wird uns für diese Aufgabe als Korpus dienen.\n", "\n", "In dieser Version sind an ein paar Stellen beschriebene Farben auch als Hexcode angegeben. In der Informatik werden Farben oft im [🇩🇪 RGB-Farbraum](https://de.wikipedia.org/wiki/RGB-Farbraum) angegeben, also mit drei Werten, jeweils einem für Rot, Grün und Blau. Oft nehmen diese \"Farbkanäle\" Werte zwischen 0 und 255 an, was genau in zwei Stellen im Hexadezimalsystem abgebildet werden kann (`00`-`FF`). Ein vollständiger Farbcode besteht damit also aus einem führenden `#`, gefolgt von sechs Hexadezimalziffern. \n", "\n", "**Aufgabe:** Schreiben Sie ein python-Programm, das die gesamte Datei `war-and-peace_modified.txt` einliest, nach Hexcodes wie oben beschrieben durchsucht und alle gefundenen Ergebnisse ausgibt.\n", "_Hinweis:_ Lediglich nach dem Zeichen `\"#\"` zu suchen wird nicht ausreichend sein. Leider wurde die Datei leicht \"beschädigt\" aufgefunden und dieses Zeichen an ein paar hundert Stellen zufällig hinzugefügt." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Ihr Code hier! (Doppelklick zum Editieren, Shift + Enter um die Zelle auszuführen)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Aufgabe 8.2 (HTML-Ouput, 35 Punkte)\n", "\n", "Eines Tages befinden Sie sich gerade zum Mittagessen in der Mensa und genießen die Ruhe, die in Ihr Email-Konto eingekehrt ist, seid Sie Ihre neue SPAM-Filter-Regel installiert haben. Plötzlich setzt sich jemand zu Ihnen und fängt sofort an zu reden, ohne Luft zu holen. Er stellt sich Ihnen als Malte Museumsdirektor vor und sagt er hätte Ihren Kontakt über seinen guten Freund Ädgar Ägyptologe erhalten. Sie schauen sich um und sehen Ädgar ein paar Tische weiter freudig winken. Im weiteren Gespräch, welches durchaus einseitig verläuft, stellt sich heraus, dass in seinem Museum aktuell eine Digitalisierungsinitiative stattfindet weil dafür von einem nicht näher genannten Bundesministerium Mittel zur Verfügung gestellt wurden. Eines der Ziele ist es, für jedes Ausstellungsstück eine eigene kleine Website zu erstellen. Da aber weder Malte selbst noch seine Mitarbeitenden über \"Computerdinge\" Bescheid wissen und das Geld aus dem Digitalisierungstopf selbstverständlich schon anderweitig verplant ist, fragt er Sie, ob Sie ihm nicht ein Programm schreiben könnten, was dem Museumsteam die Aufgabe vereinfachen könnte.\n", "\n", "Jede Website soll grob nach folgendem Muster aufgebaut sein: Überschrift, etwas erklärender Text und eine ungeordnete Liste von drei \"Fantastischen Fakten\".\n", "\n", "_Beispiel:_\n", "\n", "![](https://i.imgur.com/UavsxjP.png)\n", "\n", "**Aufgabe:** Schreiben Sie ein Python-Programm, das fünf Eingaben (Überschrift, Erklärungstext und drei \"Fantastische Fakten\") über ein Ausstellungsstück abfragt. Diese Strings, umschlossen von passenden HTML-Tags -- `
` und 3 Mal `