Python的PyInputPlus模块

PyInputPlus模块

简介PyInputPlus模块的功能:

  • PyInputPlus模块是一个Python第三方模块,需要自己对它进行安装。包含与input()函数类似的、用于多种数据(如日期、数字、电子邮箱地址等)的函数。
  • 如果,用户输入了无效的内容,例如格式错误的日期或超过预期范围的数字,那么PyInputPlus模块会再次提示用户输入。
  • 提示用户次数限制和时间限制可以防止用户无限输入。

安装PyInputPlus模块

  1. 点击终端,输入以下命令:pip install pyinputplus然后回车运行,等待安装完成。
  2. 在设置的项目解析其中安转,找到pyinputplus然后,点击安装软甲包,等待安装完成即可。

⚠️注意

  • PyInputPlus模块仅支持Python3.x版本。
  • 安装完成以后,可以在交互式环境中验证是否安装成功。输入:import puinputplus然后回车,如果没有报错,说明安装成功。

PyInputPlus模块中几种不同类型的输入函数

  1. inputStr():类似于内置的input()函数,但是这个函数用来输入字符串。
  2. inputNnm(): 确保用户输入的数字,并返回 intfloat 类型。
  3. inputDate(): 确认用户输入的日期和时间。
  4. inputEmail(): 确认用户输入的事电子邮箱的地址。
  5. inputChoice(): 确认用户输入的事系统提供的选项之一。
  6. inputInt(): 确认用户输入的是整数类型。
  7. inputFloat(): 确认用户输入的是浮点数类型。
  8. inputYesNo(): 让用户输入“是”或“否”,与inputBool()函数类似。
  9. inputBool(): 确认用户输入的是布尔值(TrueFalse)。
  10. inputMenu():让用户从菜单中选择一个选项。
  11. inputPassword(): 类似于内置对的input()函数,但是这个函数在用户输入时会隐藏输入的字符,显示”*”。
  12. 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

  1. 决定模块的函数何时放弃:
    • limit:设置最大尝试次数。传递一个整数,以确保PyInputPlus的函数在放弃之前蚕食接收有效输入次多少次。
    • timeout:设置最大等待时间(秒)。传递一个整数,以确定用户在多少秒内提供有效输入,然后PyInputplus模块的函数会放弃。
    • 如果用户未能提供有效的输入,分别出现两个异常RetryLimitExpect, TimeoutExpect异常
  2. 默认值【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)  # 打印结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值