Bist Du denn sicher, dass die beiden Objekte irgendwann definitiv einmal gleich sind? Das könnte zum einen an verschiedenen Formaten liegen oder eben einfach daran, dass die Systemzeit nicht auf Deiner untersten Genauigkeit aktualisiert wird.
Zum Code:
- Du solltest Dir Sternchen-Importe abgewöhnen. Zudem importierst Du ``time`` ja auch richtig - wozu dann noch der andere import?
- Endlosschleifen formuliert man am besten mit einem nativen Wahrheitswert. Python bietet dafür die beiden Objekte ``True`` und ``False``; in Deinem Falle also:
- Ziele 4 ist überflüssig:
Du bindest doch *vor* dem Vergleich in der Schleife den Namen ständig neu. Also musst Du nix initialisieren. Und in Python musst Du schon gar nichts deklarieren.
- Dieses
Code: Alles auswählen
inputtime = (year, month, day, hour, minu, sec, 0, 0, 0)
inputtime = mktime(inputtime)
lässt sich auch in einer Zeile formulieren:
Code: Alles auswählen
inputtime = mktime((year, month, day, hour, minu, sec, 0, 0, 0))
Wenn Du ein Objekt nicht mehr als an einer Stelle brauchst und es nicht der Übersicht / Leserlichkeit dienlich ist, so musst Du es nicht an einen separaten Namen binden und schon gar nicht an denselben, den Du im Anschluss erneut an ein neues Objekt bindest.
- das gilt letztlich auch hierfür:
Code: Alles auswählen
pctime = mktime(time.localtime())
if pctime == inputtime:
Auch hier kannst Du doch *direkt* im ``if``-Ausdruck gegen die ``localtime`` vergleichen:
- Bei Deiner Eingaberoutine könnte man überlegen, ob man das nicht lieber als *ein* String einlesen will und aus diesem mittels geeigneter Parsing-Methode das Zeitobjekt generieren lassen will. ``datetime.strptime`` sollte die geeignete Funktion dafür sein.