ich bin noch ziemlich neu bei Python und versuche mich mit Code-Spielereien ein wenig zu üben ^^
Habe eine kleine Uhr geschrieben, die zugegebenermaßen bis vor einer halben Stunde noch gar keine richtige Uhr war: Man konnte die aktuelle Zeit nur selbst eingeben, weil ich nicht wusste, wo man die Systemzeit herbekommt. Dann aber rettete mich

Nun ist es also tatsächlich eine Uhr, kann aber auch als Stoppuhr verwendet werden, wenn Stunde, Minute und Sekunde auf Null gesetzt werden.
Wahrscheinlich nicht das prächtigste Stück Code, das ihr je gesehen habt, aber ich als Anfänger freu mich drüber =D
Etwas wie
Code: Alles auswählen
c = TinyClock(True)
c.start()
Code: Alles auswählen
import os
import time
import datetime
class TinyClock:
def __init__(self, usingSystemTime=False, h=0, m=0, s=0):
if usingSystemTime:
timeList = self.__getSystemTime()
self.hour = int(timeList[0])
self.min = int(timeList[1])
self.sec = int(timeList[2])
self.usingSystemTime = True
else:
if h < 0 or h > 23:
raise ValueError("Inappropriate value for hour")
if m < 0 or m > 59:
raise ValueError("Inappropriate value for minute")
if s < 0 or s > 59:
raise ValueError("Inappropriate value for second")
self.hour = h
self.min = m
self.sec = s
self.usingSystemTime = False
def __getSystemTime(self):
# sample date:
# 2010-12-13 23:21:20.169001
dateString = str(datetime.datetime.now()) # datetime obj. --> string
dateList = dateString.split(" ") # splits by space
timeList = dateList[1].split(".") # split until all that is left
timeList = timeList[0].split(":") # is hour, minute, and second
return timeList
def __timeToString(self):
hStr = str(self.hour)
mStr = str(self.min)
sStr = str(self.sec)
if self.hour < 10:
hStr = "0"+ hStr
if self.min < 10:
mStr = "0"+ mStr
if self.sec < 10:
sStr = "0"+ sStr
return hStr+":"+mStr+":"+sStr
def __updateTime(self):
if self.usingSystemTime:
timeList = self.__getSystemTime()
self.hour = int(timeList[0])
self.min = int(timeList[1])
self.sec = int(timeList[2])
else:
self.sec += 1
self.__checkForChanges()
def __checkForChanges(self):
if self.sec > 59:
self.min += 1
self.sec = 0
if self.min > 59:
self.hour += 1
self.min = 0
if self.hour > 23:
self.hour = 0
def __clearConsole(self):
if os.name == "posix":
os.system("clear")
elif os.name in ("dos", "nt", "ce"):
os.system("cls")
else:
print(80*"\r\n")
def start(self):
while True:
self.__clearConsole()
currTime = self.__timeToString()
print(currTime)
self.__updateTime()
time.sleep(1.0)