In dieser Aufgabe geht es darum, erste Erfahrung mit Python-Modulen zu machen. An dieser Aufgabe soll vor allem ersichtlich werden, wie sich der Einsatz von (guten) Modulen auf die Lesbarkeit eines Programms auswirkt.
Schreiben Sie ein Programm, welches ein Datum d1
und ein Datum d2
bekommt und die Anzahl der Tage zwischen d1
und d2
berechnet.
Achten Sie dabei
Schreiben Sie nun dasselbe Programm neu.
Nutzen Sie diesmal jedoch das Modul datetime. Wir haben Ihnen die Dokumentation verlinkt, hier sind vor allem die Abschnitte date Objects
und timedelta Objects
relevant.
Falls Sie sich durch die Dokumentation überfordert fühlen, ist das überhaupt kein Problem. Genau wie beim programmieren: Übung macht den Meister. Schauen Sie sich in diesem Fall gerne Tipp 2 unten an :)
Was fällt Ihnen auf, wenn Sie beide Programme bezüglich der Komplexität und Lesbarkeit vergleichen?
Aus der Vorlesung ist bekannt, dass man mit dem Operator % den Rest berechnen kann, z.B. 5 % 2 = 1.
import datetime as dt
# So erstellt man mithilfe des datetime Moduls ein Datum bzw. genauer gesagt eine Instanz der "date" Klasse (welche ein Datum repräsentiert)
d1 = dt.date(2042, 1, 1)
d2 = dt.date(2077, 12, 10)
# die date Klasse implementiert die __str__ Funktion, quak quak
print(d1)
print(d2)
# Das datetime Modul beinhaltet auch unterschiedliche Operatoren für dessen Objekte, so kann man z.B. zwei Daten substrahieren, als Ergebnis bekommt man ein "timedelta" Objekt, welches (unter anderem) die Tage zwischen den beiden Daten enthält!
# Wie praktisch!
print(f"Just {(d2 - d1).days} days left!")
Versuchen Sie diesen Code hier auszuführen. Welche Fehlermeldung tritt auf und wieso? Und warum ist dies für uns sehr praktisch?
import datetime as dt
d1 = dt.date(3939, 39, 39)