跳转到主要内容

提供更强大的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() - 接受一个数字。此外,还有 minmax 参数用于包含范围,以及 greaterThanlessThan 参数用于排除范围。返回一个 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() 类似,但如果将 numberedlettered 设置为 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’

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

PyInputPlus-0.2.12.tar.gz (20.9 kB 查看哈希值)

上传时间 源代码

由以下支持