Python-101 Kompetenzen A1#
Kompetenzen auf Niveau A1:
Grundlage: Absolute Behrerrschung aller grundlegenden Datentypen und Operationen, sie sie im Whirlwind definiert sind, insbesondere
Ganzzahl-Division:
/
,//
,%
Umwandlung zwischen Integer, Float, Strings
Zahlen als String serialisieren: print-mit-f-string
Strings und Listen:
Slicing
anhängen, zusammenfügen
Strings: split, join; Umwandlung in Listen;
Dicts: keys(), values(), items(), get()
Sets: die üblichen Mengenoperationen
didaktische Schritte in Runde 1:
e_Dateien-lesen-schreiben
Ziel aber die zentrale Kompetenz, die man nach Runde 2 erworben haben sollte: Kann in Python eine Datei einlesen und in grundlegenden Datenstrukturen überführen (ausführlich siehe Didaktik zum Notebook Python 101 Übungsblatt 3):
CVS-Datei, Adressen, mit Namen, Telefonnummern, Geburtstagen … Auswertung der Tabelle nicht in Pandas, sondern mit nativen Python Datenstrukturen
Text-Datei … zeilenweises Einlesen, einlesen als gesamtes, dann split … Weiterverarbeitung der Zeilen
Technisch erforderlich in Runde 2 ist der sicherere Umgang mit zweifach verschachtelten Datenstrukturen:
Listen von Listen (resp. statt Listen auch Dicts)
Anwendung: Darstellung einer Tabelle zeilenweisenweise/spaltenweise, siehe insbesondere die Notebooks:
Weiterhin hilfreich, aber weniger schwierig: “Einpacken” von Funktionalität in Funktionen.
Beispiele Text-Datei#
Gegeben sei eine Datei haiku.txt
, die Haikus enthält, jeweils ein Haiku in einer Zeile, getrennt
Der alte Weiher: | Ein Frosch springt hinein. | Oh! Das Geräusch des Wassers.
Uralter Teich. | Ein Frosch springt hinein. | Plop.
Auf dem Seerosenblatt der Frosch | aber was macht er | für ein Gesicht?
Decken auf dem Gras, | eine Nacht lang ohne Haus - | reich nur durch den Mond.
Ich will auf ihr spielen, | jetzt, wo der Mond und ich | ganz alleine sind.
Eine typische (einfache) Aufgabe könnte darin bestehen, eine solche Datei einzulesen, und die Haikus gedichtartig auszudrucken.
Eine weiterführende Aufgabe könnte darin bestehen, für jedes Haiku eine Liste von semantisch bedeutsamen Wörtern anzulegen:
alle Wörter, deren erster Buchstabe ein Großbuchstabe ist, sowie
alle Wörter aus einer Positivliste, z.B. “ich”, “einsam”, “reich” etc.
Würde ein Teil dieser weiterführenden Aufgabe auch darin bestehen, sich selbst für eine geeignete Datenhaltung zu entscheiden? Das ist nicht so einfach. Auf A1-Niveau wäre die Datenhaltung in der Aufgabe daher schon vorgegeben, oder aus der Vorlesung bekannt, etwa so:
h_dict = {
0 : ... ,
1 : {"zeile": "Uralter Teich. | Ein Frosch springt hinein. | Plop.",
"block": ['Uralter Teich. ', ' Ein Frosch springt hinein. ', ' Plop.'],
"groß": ['Uralter', 'Teich.', 'Ein', 'Frosch', 'Plop.']}}
In der Vorlesung auch gezeigt, aber A1 übersteigend: “reinigen” eines Strings, d.h. entfernen aller Sonderzeichen, Interpunktionen etc.; ggf. auch entfernen von Stopwörtern etc.. Sinnvoll wäre solch eine Reinigung jedenfalls vor dem Schritt, die semantisch bedeutsamen Wörter zu identifizieren.