我需要输入小时(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'的参数不可迭代
答案 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))