Nummernanzeige + | time-Modul = | Digitaluhr |
Beispiele |
Aufgaben |
Die Klasse Nummernanzeige solltest du beim letzten Mal entwerfen. Hier ein mögliches UML-Diagramm:
Zur Dokumentation vergleiche die Datei Nummernanzeige.html. Von dieser Klasse hängt die Klasse Uhrenanzeige ab, deshalb der gestrichelte Pfeil im folgenden Diagramm.
Damit wir die Klasse Uhrenanzeige programmieren können, benötigen wir aber beispielsweise die momentane Uhrzeit sowie einen "Taktgeber" (Warum?). Beides liefert uns das time-Modul.
<<<Das time-Modul bietet unterschiedliche Funktionen zur Manipulation von Zeit-Werten an. Eine Beispielsitzung:
>>> import time >>> dir(time) ['__doc__', '__name__', 'accept2dyear', 'altzone', 'asctime',
'clock', 'ctime', 'daylight', 'gmtime', 'localtime', 'mktime',
'sleep', 'strftime', 'strptime', 'struct_time', 'time',
'timezone', 'tzname'] >>> time.localtime() (2005, 11, 23, 23, 8, 9, 2, 327, 0) >>> time.sleep(1) # 1 Sekunde Pause >>> time.localtime()[3] # Stunden 23 >>> time.localtime()[4] # Minuten 9 >>> time.localtime()[5] # Sekunden 51
Unser Taktgeber ist also die Methode time.sleep()
. Über time.localtime()
bekommen wir die aktuelle Zeit (& beispielsweise das aktuelle Datum). Die Funktion time.localtime()
liefert ein sogenanntes Tupel zurück. Der Zugriff auf ein Tupel funktioniert ähnlich wie bei Zeichenketten (Wie genau?).
Unsere Digitaluhr holt sich einmal die Uhrzeit und setzt dann periodisch Sekunden, Minuten und Stunden hoch. Hierfür gibt es in der Klasse Nummernanzeige die Methode erhoehen
, Benutzung: minuten.erhoehen()
, falls mit folgender Vereinbarung:
minuten = Nummernanzeige(60)
ein Objekt der Klasse Nummernanzeige erzeugt wurde. Bei der Anzeige der Uhrzeit muss man noch beachten, dass führende Nullen erst mal nicht mitausgegeben werden. Hier ein Demolauf:
01:29:58 01:29:59 01:30:00 01:30:01 01:30:02<<<
findest du im Lehrer-Ordner rechts oben auf dem Desktop unter wspiegel u. s. w.: