提供更强大的input()和raw_input()版本。
项目描述
一个Python 2和3模块,提供类似于input()和raw_input()的函数,具有额外的验证功能,包括
如果用户输入无效,将重新提示用户。
验证数字、布尔值、日期、时间或是/否响应。
用户响应的超时或重试限制。
为响应指定正则表达式以进行白名单或黑名单。
为数字输入指定范围。
以带项目符号、字母或数字选项的形式展示菜单。
允许大小写敏感或大小写不敏感的响应。
安装
pip install pyinputplus
示例用法
>>> import pyinputplus as pyip >>> result = pyip.inputStr()不允许空值。Hello >>> result ‘Hello’
>>> result = pyip.inputNum() forty two 'forty two' is not a number. 42 >>> result 42>>> result = pyip.inputNum(min=4, max=6) 3 Input must be at minimum 4. 7 Input must be at maximum 6. 4 >>> result 4>>> result = pyip.inputNum(greaterThan=4, lessThan=6) 4 Input must be greater than 4. 4.1 >>> result 4.1>>> result = pyip.inputStr('Favorite animal> ', blacklistRegexes=['moose']) Favorite animal> moose This response is invalid. Favorite animal> cat >>> result 'cat'>>> result = inputMenu(['dog', 'cat', 'moose']) Please select one of the following: * dog * cat * moose DoG >>> result 'dog'>>> result = inputMenu(['dog', 'cat', 'moose'], lettered=True, numbered=False) Please select one of the following: A. dog B. cat C. moose b >>> result 'cat'
常见的输入函数参数
所有输入函数都有以下参数
prompt (str): 在每个用户输入提示之前显示的文本。与Python的raw_input()和input()函数的prompt参数相同。默认
default (str, None): 如果用户超时或超过输入有效输入的尝试次数,将使用的默认值。
blank (bool): 如果为True,则允许空字符串作为有效的用户输入。
timeout (int, float):自首次输入提示以来经过的秒数,用户下次输入时将引发 TimeoutException。
limit (int):用户在返回默认值之前必须输入有效输入的尝试次数。
strip (bool, str, None):如果为 True,则从 value 中删除空白字符。如果为 str,则从 value 中删除该字符串中的字符。如果为 None,则不删除任何内容。默认为 True。
whitelistRegexes (Sequence, None):一个正则表达式字符串序列,将明确通过验证,即使它们不是数字。默认为 None。
blacklistRegexes (Sequence, None):一个正则表达式字符串或 (regex_str, response_str) 元组的序列,如果匹配,将明确失败验证。默认为 None。
applyFunc (Callable, None):一个可选函数,它接受用户的输入,并返回用作输入的新值。
validationFunc (Callable):一个函数,它接受用户的输入值,如果输入无效则引发异常。(此函数的返回值将被忽略。)
postValidateApplyFunc (Callable):一个可选函数,它接受通过验证的用户输入,并返回用于输入函数返回的转换版本。
其他输入函数可能有额外的参数。
输入函数
inputStr() - 接受一个字符串。如果您基本上想要 Python 的 input() 或 raw_input(),但带有 PyInputPlus 功能,如白名单/黑名单、超时、限制等,请使用此功能。
inputNum() - 接受一个数字。此外,还有 min 和 max 参数用于包含范围,以及 greaterThan 和 lessThan 参数用于排除范围。返回一个 int 或 float,而不是一个 str。
inputInt() - 接受一个整数。也有 min/max/greaterThan/lessThan 参数。返回一个 int,而不是一个 str。
inputFloat() - 接受一个浮点数。也有 min/max/greaterThan/lessThan 参数。返回一个 float,而不是一个 str。
inputBool() - 接受不区分大小写的 ‘True’、‘T’、‘False’ 或 ‘F’ 形式,并返回一个 bool 值。
inputChoice() - 接受传递给其 choices 参数的字符串列表中的其中一个字符串。
inputMenu() - 与 inputChoice() 类似,但如果将 numbered 或 lettered 设置为 True,则还会以 1、2、3… 或 A、B、C… 选项的形式显示选择。
inputDate() - 接受通过传递给 formats 参数的 strftime 格式输入的日期。默认有多种常用格式。)返回一个 datetime.date 对象。
inputDatetime() - 与 inputDate() 相同,但它处理日期和时间。默认有多种常用格式。)返回一个 datetime.datetime 对象。
inputTime() - 与 inputDate() 相同,但它处理时间。默认有多种常用格式。)返回一个 datetime.time 对象。
inputYesNo() - 接受不区分大小写的 ‘Yes’、‘Y’、‘No’ 或 ‘N’ 形式,并返回 ‘yes’ 或 ‘no’。