Alaeddin und die Wunderlampe

Wörter zählen

In dieser Aufgabe sollst Du herausfinden, welche Wörter in der Geschichte "Alaeddin und die Wunderlampe" am häufigsten auftreten. Dazu benötigen wir unterschiedliche Datentypen, um Dinge zu zählen und zu sortieren.

Schreibe ein Programm, das die Wörter in der Datei alaeddin.txt zählt und die häufigsten 100 ausgibt.

Hinweise

Hinweis 1

Wie sollte die Ausgabe aussehen?

Schreibe einige beispielhafte Zeilen der Ausgabe auf.

Antworten auf die Hinweisfragen


Hinweis 2

Welche Schritte sollte das Programm ausführen und in welcher Reihenfolge?

Zeichne ein Flußdiagramm.

Antworten auf die Hinweisfragen


Hinweis 3

Welcher Datentyp in Python ist gut dazu geeignet, Dinge zu zählen?

Hinweis 4

Welche Programmzeilen benötigst Du, um

  • den Datentyp zu initialisieren?
  • ein einzelnes Wort zu zählen?

Antworten auf die Hinweisfragen


Hinweis 5

Welche Python-Funktionen kannst Du verwenden, um

  • Eine Textdatei einzulesen?
  • Einen String in Wörter aufzuteilen?

Antworten auf die Hinweisfragen


Hinweis 6

Welcher Datentyp in Python ist gut zum Sortieren geeignet?

Wie würdest Du die Wörter und deren Anzahl in dieser Datenstruktur repräsentieren? Nach welchen Kriterien sortiert Python Integers, Strings, Tupel und andere Listen? Wie würden sie sortiert werden?

Antworten auf die Hinweisfragen


Hinweis 7

An welcher Stelle der Ausgabe würdest Du Wörter wie “ist”, “Zauberer”, “Ring” oder “Tageslicht” erwarten? Prüfe ob die Ausgabe Deiner Erwartung entspricht.

Falls sie es nicht tut, teste Dein Programm zuerst mit einem kurzen Textabschnitt (2-3 Zeilen).

Antworten auf die Hinweisfragen


Hinweis 8

Vorsicht: Sonderzeichen und Großbuchstaben können beim Aufteilen der Wörter das Ergebnis verzerren. Entferne die Sonderzeichen, bevor Du anfängst zu zählen. Wie läßt sich das erreichen?

Antworten auf die Hinweisfragen

Antworten auf die Hinweisfragen

Antwort auf Hinweisfrage 1

Beispielhafte Ausgabe:

1311   und
 223   prinzessin
 175   sultan

Antwort auf Hinweisfrage 2

  1. Lies die Datei ein
  2. Teile sie in Wörter auf
  3. Zähle jedes Wort
  4. Sortiere die Wörter nach Anzahl
  5. Gib die häufigsten Wörter + Anzahlen aus.

Antwort auf Hinweisfrage 3

Dictionaries sind zum Zählen von Dingen geeignet

Antwort auf Hinweisfrage 4

Dictionary initialisieren:

counter = {}

Ein einzelnes Wort zählen:

counter.setdefault('palast', 0)
counter['palast'] += 1

Antwort auf Hinweisfrage 5

Lesen einer Textdatei:

text = open(dateiname).read()

Einen String zerteilen:

woerter = text.split()

Antwort auf Hinweisfrage 6

Listen in Python lassen sich gut sortieren. Listen können Tupel enthalten, z.B.:

daten = [ (12, 34), (56, 78) ]
daten.sort()

Versuche die folgenden Listen in der Python Shell zu sortieren:

[('aaa', 100), ('bbb', 20)]

und

[(100, 'aaa'), (20, 'bbb')]

Antwort auf Hinweisfrage 7

Die ersten vier Plätze sollten sein:

1311     und
 990     die
 968     der
 867     er

Antwort auf Hinweisfrage 8

Sonderzeichen lassen sich einzeln mit der Funktion str.replace entfernen, z.B. str.replace('.', '').

Quellenangabe

Alaeddin und die Wunderlampe von Curt Moreck ( https://www.gutenberg.org/ebooks/22413)

results matching ""

    No results matching ""