PyInputPlus模块
简介PyInputPlus
模块的功能:
- PyInputPlus模块是一个Python第三方模块,需要自己对它进行安装。包含与
input()
函数类似的、用于多种数据(如日期、数字、电子邮箱地址等)的函数。 - 如果,用户输入了无效的内容,例如格式错误的日期或超过预期范围的数字,那么PyInputPlus模块会再次提示用户输入。
- 提示用户次数限制和时间限制可以防止用户无限输入。
安装PyInputPlus模块
- 点击终端,输入以下命令:
pip install pyinputplus
然后回车运行,等待安装完成。 - 在设置的项目解析其中安转,找到
pyinputplus
然后,点击安装软甲包,等待安装完成即可。
⚠️注意:
- PyInputPlus模块仅支持Python3.x版本。
- 安装完成以后,可以在交互式环境中验证是否安装成功。输入:
import puinputplus
然后回车,如果没有报错,说明安装成功。
PyInputPlus
模块中几种不同类型的输入函数
inputStr()
:类似于内置的input()
函数,但是这个函数用来输入字符串。inputNnm()
: 确保用户输入的数字,并返回int
或float
类型。inputDate()
: 确认用户输入的日期和时间。inputEmail()
: 确认用户输入的事电子邮箱的地址。inputChoice()
: 确认用户输入的事系统提供的选项之一。inputInt()
: 确认用户输入的是整数类型。inputFloat()
: 确认用户输入的是浮点数类型。inputYesNo()
: 让用户输入“是”或“否”,与inputBool()
函数类似。inputBool()
: 确认用户输入的是布尔值(True
或False
)。inputMenu()
:让用户从菜单中选择一个选项。inputPassword()
: 类似于内置对的input()
函数,但是这个函数在用户输入时会隐藏输入的字符,显示”*”。inputFilepath()
: 确认用户输入的事文件路径和文件名,并可以选择检查是否存在具有该名称的问价。
关键字参数
指定有效范围的关键字参数
[min
, max
, greaterThan
, lessThan
, between
]
min
:设置最小值,这个值是可以取到的。max
:设置最大值,这个值是可以取到的。greaterThan
:设置最小值,这个值是不可以取到的。lessThan
:设置最大值,这个值是不可以取到的。
import pyinputplus as pyip
# 输入一个数字,范围在1-10之间
pyip.inputInt(prompt='Enter a number between 1 and 10:', min=3, max=7)
关键字参数blank
默认情况下,除非blank
关键字参数设置为True
,否则PyInputPlus模块不会接受空白输入。
决定用户输入的次数、时间限制
如果你希望某个函数在经过一定次数的尝试或一定的时间后停止要求用户输入。【limit
, timeout
, default
】
- 决定模块的函数何时放弃:
limit
:设置最大尝试次数。传递一个整数,以确保PyInputPlus
的函数在放弃之前蚕食接收有效输入次多少次。timeout
:设置最大等待时间(秒)。传递一个整数,以确定用户在多少秒内提供有效输入,然后PyInputplus
模块的函数会放弃。- 如果用户未能提供有效的输入,分别出现两个异常
RetryLimitExpect
,TimeoutExpect
异常
- 默认值【
default
】- 当你使用这些关键字参数,并传入
default
关键字参数时,该函数会返回默认值,而不是应发异常!
- 当你使用这些关键字参数,并传入
import pyinputplus
reaponse = pyip.inputNum(limit=2, default = 'N/A')
print(reaponse)
import pyinputplus
reaponse = pyip.inputNum(limit=2, default = 'N/A')
print(reaponse)
有这个示例可以知道,到了规定的次数,之后用户数如的然后不是有效的时,返回的值为default
关键字规定的默认值。输入有效的,则是输入的这个有效值。
使用正则表达
使用到的关键字参数:allowRegexes
, blockRegexes
。
这连个关键字参数,利用正则表达式字符串列表来确定 PyInputPlus
模块的函数将接收还是拒绝那些内容作为有效输入。
allowRegexes
: 表示接收满足这种正则表达的式子作为输入;allowRegexes
: 表示拒绝满足这种正则暴打的式子作为输入;
inputCustom()
函数
- 接收单个字符串参数,即用户输入的内容;
- 如果字符串验证失败,则引发异常;
- 如果
inputCustom()
应该返回不变的字符串,则返回None
(或没有return
语句); - 如果
inputCustom()
返回的字符串与用户输入的字符串不同,则返回非None
值; - 作为第一个参数传递给
inputCustom()
。
我们可以创建自己的函数例如一个addsUpToTen()
函数,我们需要将这个函数传递给inputCustom()
,inputCostom(addUpToTen)
。
因为我们需要将addUpToTen()
函数本身传递给inputCustom()
,而不是调用addUpTen()
并传递其返回值:
# 导入需要使用的模块,作为pyip
import pyinputplus as pyip
# 自定义一个函数,判断是不是满足条件
def add_up_to_ten(numbers):
numbers_list = list(numbers)
for i, digit in enumerate(numbers_list):
numbers_list[i] = int(digit)
if sum(numbers_list)!= 10:
raise Exception('这几个数的和不是 10 ,而是 %s 。' % (sum(numbers_list)))
return int(numbers)
# 通过模块中的inputCustom()函数,将自定义的函数传递进去。
response = pyip.inputCustom(add_up_to_ten)
print(response) # 打印结果。
标签:函数,Python,用户,inputCustom,模块,PyInputPlus,输入
From: https://blog.csdn.net/zhjx0903/article/details/140767966