0%

Die Standardbibliothek gibt es bereits · Abschlussprojekt

Abschlussprojekt: Abschlussprojekt: Die Aktivitätsübersicht erstellen

Das Projekt hat vier funktionierende Teile:

  • days_between wandelt ISO-Text in Datumswerte um und misst deren Abstand;

  • count_categories stellt Kategoriehäufigkeiten als Counter dar;

  • summarize_minutes gibt Mittelwert und Median zurück oder bei fehlenden Datensätzen None.

  • format_category_counts macht aus dem Counter eine alphabetisch sortierte Zeile.

Das Abschlussprojekt gibt diesen Teilen ein gemeinsames öffentliches Ergebnis: build_briefing(records). Hier werden ausgewählte Bibliotheksfunktionen zu einem nützlichen Programm statt zu drei API-Vorführungen.

Die bewährten Vereinbarungen zusammensetzen

Nimm nicht an, dass der erste Datensatz das früheste Datum und der letzte das späteste enthält. Initialisiere beide Grenzen mit dem ersten Datensatz, gehe alle Datensätze durch und aktualisiere sie durch Vergleiche. Dieses Projekt verlangt Datumsstrings mit fester Breite im Format YYYY-MM-DD. Deshalb stimmt ihre Textreihenfolge mit ihrer Kalenderreihenfolge überein.

Rufe anschließend days_between(earliest, latest), format_category_counts(records) und summarize_minutes(records) auf. Das Abschlussprojekt führt ihre Ergebnisse zusammen; es wiederholt nicht das Einlesen, Zählen, Sortieren oder die Statistik.

Aufgaben für Daten und Darstellung sichtbar halten

Gib bei nicht leeren Datensätzen genau vier Zeilen zurück:

Activity briefing
Dates: <earliest> to <latest> (<distance> days apart)
Categories: <alphabetical name=count pairs>
Minutes: mean=<mean>; median=<median>

Gib bei einer leeren Liste genau No activities recorded. zurück. Es gibt keinen Datumsbereich, keine Kategorieliste, keinen Mittelwert und keinen Median zu erfinden.

main() gibt die Übersicht für die vorbereiteten ACTIVITIES aus. Die Bedingung if __name__ == "__main__" sorgt dafür, dass das Ausführen der Datei den Bericht anzeigt, während ein Import zum Prüfen oder Wiederverwenden ohne Ausgabe bleibt.

Bringe den Weg von der Aufgabe zur API in die Reihenfolge, die dieses Projekt verwendet:

Ziehe die Optionen in die richtige Reihenfolge oder verwende die Pfeiltasten.

  • Die Vereinbarung des ausgewählten Objekts zu Eingaben, Rückgabe und Fehlern lesen.

  • Ein winziges Beispiel ausprobieren.

  • Die Aufgabe in gewöhnlichen Worten beschreiben.

  • Ein wahrscheinlich passendes Modul der Standardbibliothek finden.

  • Die bewährte Operation ins Projekt einbauen.

Welche Aufgabenteilung passt zum fertigen Projekt?

Vervollständige die Datei, führe sie aus und reiche ein.

Bringe vorher ACTIVITIES in eine andere Reihenfolge und führe das Programm noch einmal aus. Die Übersicht sollte identisch bleiben. Jeder Teil dieses Kapitels wurde genau dafür gebaut.

Aufgabe

Vervollständige activity_report.py.

Implementiere build_briefing(records) mit diesem Vertrag:

  • gib bei einer leeren Liste No activities recorded. zurück;

  • finde das früheste und späteste ISO-Datum, ohne eine Eingabereihenfolge vorauszusetzen;

  • rufe days_between, format_category_counts und summarize_minutes auf, statt ihre Aufgaben zu wiederholen;

  • gib genau das in der Lektion gezeigte vierzeilige Format zurück.

Implementiere dann main() so, dass es build_briefing(ACTIVITIES) ausgibt. Behalte die vorbereitete Bedingung if __name__ == "__main__" bei. Beim Ausführen sollte die Datei die Beispielübersicht anzeigen; beim Importieren sollte sie nur ihre wiederverwendbaren Funktionen verfügbar machen.