发布网友 发布时间:2022-04-20 15:48
共2个回答
热心网友 时间:2022-04-18 07:26
import re
def getInput(prompt, valid=None, convertor=None):
""" 打印提示, 从控制台输入信息;
(若提供验证方法则要求输入直到验证成功),
(若提供转换方法则返回转换后的数据)
"""
n = raw_input(prompt)
while valid and not valid(n):
n = raw_input(prompt)
return n if not convertor else convertor(n)
tmpatt = re.compile(r'''
(?P<hours>\d\d):
(?P<minutes>\d\d):
(?P<secons>\d\d)
''', re.I|re.X|re.U)
def str2timetuple(s):
""" 将符合时间格式的字符串转化为(hours, minutes, secods)元组 """
dt = tm.match(s).groupdict()
return map(lambda item: int(dt.get(item)),
['hours', 'minutes', 'secons'])
tmtuple = getInput("please input time: (HH:MM:SS) ",
valid=lambda s: tmpatt.match(s),
convertor=str2timetuple
)
热心网友 时间:2022-04-18 08:44
没有这样的格式,要么让用户分次输入,要么一次输入后,解析字符串赋给3个参数(":"分隔)