Python-101 Kompetenzen A1

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:

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:

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.