python 的格式化输入

发布网友 发布时间: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个参数(":"分隔)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com