发布网友 发布时间:2022-04-26 00:14
共1个回答
热心网友 时间:2023-10-22 00:31
题目的提示代码,写复杂了而且没有验证。我不完全按提示写(题目也说了只是参考)。
这里输入验证用正则表达式,时分秒的数字都有大小范围,且格式按中文时分秒分割。
用search函数对输入字符串匹配正则表达式,只要找出满足规则的部分(这样即使输入包含其它无关内容也能被筛选)。
而最后拆分字符串,不需要像题目那些一个一个找索引,直接使用re下的split函数按时分秒分割即可一次性获得数字。
import re
while True:
time=input('请输入时间(格式为##时##分##秒):\n')
timeRegex=re.compile(r'[0-23]\d时[0-59]\d分[0-59]\d秒')
mo=timeRegex.search(time)
if(mo==None):
print('输入内容不符合要求,请重新输入!\n')
continue
time=mo.group() #到这一步为止,time获取到有效的输入,前面都是验证,不需要可改成直接输入
print(time)
i=re.split('时|分|秒',time)
print(i[0]+':'+i[1]+':'+i[2]+'\n')