Übungen Thema 4
Aufgaben
Augaben zum Thema.
Aufgabe 4.1: Datum oder Zeit ausgeben
Erstellen Sie eine Variable heute
und speichern den heutigen Tag in dieser Variable. Geben Sie den Inhalt der Variable aus.
Erstellen Sie eine Variable jetzt
und speichern Sie die aktuelle Uhrzeit in dieser Variable. Geben Sie nur die Uhrzeit aus.
Aufgabe 4.2: Tage seit Geburt
Entwickeln Sie eine Programm, dass nach ihrem Geburtsdatum im Format '%d.%m.%Y'
fragt.
from datetime import datetime, date
geburtsdatum = input('Geben Sie ihr Geburtsdatum (DD.MM.YYYY) ein: ')
Berechne Sie die Anzahl Tage, die seit dem Geburtsdatum vergangen sind und geben Sie diese aus.
TIP
Damit die Differenz berechent werden kann, muss das heutige Datum und das Geburtsdatum im Format ohne Zeit sein.
differenz = date.today() - geburtsdatum.date()
Aufgabe 4.3: Tage bis Geburtstag
Erweitern das Programme mit einer Berechnung der Anzahl Tage bis zum nächsten Geburstag aus.
Geben Sie sie folgenden Text aus: 'Sie haben in {differenz.days} Tagen an einem {geburtstag.strftime("%A")} Geburtstag.'
Aufgabe 4.4: Schnellschreiber
Schreiben Sie ein Programm, dass diesen Text ausgibt:
Am 19. Januar 2038 haben 32-Bit Computer ein Problem.
Anschliessend soll man den Text wieder eintippen.
Vergleichen Sie den originalen String und die Eingabe. Geben Sie den Vergleichswert (Boolean) aus.
Messen Sie die Zeit der ganzen Programmausführung und geben Sie diese in Sekunden aus.
ℹ️ Ausgabe heisst immer print()
und Eingabe immer input()
Wiederholungsfragen
W1: Geben Sie das heutige Datum in der Form Montag, 31. 12. aus, also mit Wochentag, aber ohne Jahreszahl.
from datetime import datetime import locale now = datetime.now() locale.setlocale(locale.LC_ALL, 'de_DE.utf8') # Linux locale.setlocale(locale.LC_ALL, 'de_DE.UTF-8') # macOS locale.setlocale(locale.LC_ALL, 'german') # Windows print(now.strftime('%A, %d.%m.')) Mittwoch, 27.06.Python sieht keinen Formatcode für die Monatszahl ohne führende Null vor. Um diesen Mangel zu beheben, können Sie .0 durch . ersetzen:
s=now.strftime('%A, %d.%m.') print(s.replace('.0', '.')) Mittwoch, 27.6.
W2: Ein Kinofilm beginnt um 19:30 Uhr und dauert 132 Minuten. Wann ist die Vorstellung zu Ende?
from datetime import datetime, time start = time(19, 30) starttoday = datetime.combine(datetime.today(), start) length = timedelta(minutes=132) end = starttoday + length print(end.time()) 21:42:00
W3: Ermitteln Sie, wie viele Sekunden seit Mitternacht vergangen sind.
from datetime import datetime, timedelta now = datetime.now() midnight = datetime(now.year, now.month, now.day) sincemidnight = now - midnight print('Uhrzeit: ', now.time()) Uhrzeit: 20:28:36.657155 print('Sekunden seit Mitternacht:', sincemidnight.seconds) Sekunden seit Mitternacht: 73716