这是家庭作业。我有一个函数需要接收 5 或 6 位整数 "setStart(clock)" 。我需要验证整数是否与有效时间的值相对应。实际作业状态: 参数 1:“时钟”是一个 5 位或 6 位整数,格式为 HMMSS 或 HHMMSS,其中 H 是一天中午夜过去的 1 位或 2 位小时,MM 是 2 位小时后的分钟,SS 是分钟后的 2 位数秒。强制的。未经验证到达。示例:104200 表示上午 10:42:00;150910 代表下午 3:09:10
我尝试转换为字符串并检查工作正常的长度,除非输入的整数具有前导零,例如 000130(应该是有效的),但长度仅为 3。我尝试了一些 datetime.datetime 函数和时间。功能,但那些需要完整的时间值,而不仅仅是 HH MM SS。
有人请让我知道我错过了什么!
请注意时钟是整数而不是字符串
我试过:
def setStart(self, clock):
# Verify Clock is an integer
if type(clock)!= int:
raise ValueError("stadiumJumpScore.setStart: Start time must be an integer")
# Verify Length of clock and Valid HH MM SS values
#attempt 1
# Failed with leading Zeros
'''
test = str(clock)
testa = test[-2:]
print testa
testb = test[-4:-2]
print testb
print "NEXT ITERATION"
'''
# removed OTHER FAILED ATTEMPTS, KEPT LAST ONE because it is the "workflow" I need
# attempt 12
#failed with leading Zeros
'''
if clock.__str__().__len__() == 5:
HH = str(clock)[0:1]
MM = str(clock)[1:3]
SS = str(clock)[3:5]
elif clock.__str__().__len__() == 6:
HH = str(clock)[0:2]
MM = str(clock)[2:4]
SS = str(clock)[4:6]
else:
raise ValueError("stadiumJumpScore.setStart: Check Length of start time")
# Use Values from above converted back to int for calculation
intHH = int(HH)
intMM = int(MM)
intSS = int(SS)
if intHH > 23 or intHH < 0:
raise ValueError("stadiumJumpScore.setStart: Hour is invalid or out of range")
if intMM > 59 or intMM < 0:
raise ValueError("stadiumJumpScore.setStart: Minute is invalid or out of range")
if intSS > 59 or intSS < 0:
raise ValueError("stadiumJumpScore.setStart: Seconds is invalid or out of range")
seconds = intHH*60*60+intMM*60+intSS
return seconds
'''