输入小时:分钟:秒

时间:2019-03-27 23:45:45

标签: python

我需要输入小时(1-23)(要求输入冒号)分钟(0-59)(需要冒号输入)秒(0-59)。如果数字无效,并且冒号不在小时和分钟之间以及分钟和秒之间,则需要打印错误消息。
输入正确的时间后,时间应显示为例如:14:07:28
然后例如:去除冒号的时间:140728 这是我所做的:

   time = input("Enter time [hh:mm:ss]:")
       if time[0:2] not in 0-23:
           print("Invalid hour")
       elif time[2] != ':':
           print("Must separate hour, minute and second with colons")
       elif time[3:5] not in 0-59:
           print("invalid minute input")
       elif time[5] != ':':
           print("Must separate hour, minute and second with colons")
       elif time[6:8] not in 0-59:
           print("Invalid second input")
       else:
           print(time[0:2,3:5,6:8])

这是我收到的错误消息: 追溯(最近一次通话):   在第2行的文件“ C:/ Python Projects / Lab10CSC121 / Lab10P3.py”     如果时间[0:2]不在0-23中: TypeError:类型为'int'的参数不可迭代

2 个答案:

答案 0 :(得分:1)

您需要了解split

x ="12:32:34"
y = [int(t) for x.split(":")]

然后您可以检查y的长度,如果不是3,则抱怨格式。另外,在try-except块中获得y的定义也很不错,因此,如果int收敛失败,您可以打印出一些错误消息。

祝你好运

答案 1 :(得分:0)

这是您问题的核心。您可以进行验证:

hour = 14
minute = 7
second = 28

print('{:d}:{:02d}:{:02d}'.format(hour, minute, second))