📜  Python中的 PyInputPlus 模块(1)

📅  最后修改于: 2023-12-03 15:19:26.281000             🧑  作者: Mango

Python中的 PyInputPlus 模块

简介:

PyInputPlus是一个Python模块,用于具有输入呈现要求的各种输入函数。它具有比内置的input()函数更多的功能,例如超时、限制用户回答的类型、限制用户回答的值域范围等。

安装:

使用pip可方便地安装PyInputPlus模块:

pip install pyinputplus
使用:

可以使用PyInputPlus的各种函数来获取带特定要求的数据输入。例如,要获取一个字符串作为用户输入,可以使用inputStr()函数:

import pyinputplus as pyip

answer = pyip.inputStr("Enter your name: ")
print(answer)

上面的代码将提示用户输入一个字符串,直到输入的字符串符合要求后,该字符串才被赋予变量answer,并被打印出来。

类似地,可以使用以下函数获取其他类型的数据:

  • inputNum():要求输入的是数字
  • inputChoice():要求从一个列表中选择一个选项
  • inputYesNo():要求是yes/no的回答
  • inputBool():要求是True/False的回答
  • inputDate():要求日期的格式的回答

例如,使用inputNum()函数来获取一个数字:

import pyinputplus as pyip

answer = pyip.inputNum("Enter a number: ")
print(answer)

使用inputChoice()函数来获取从一个列表中选择的选项:

import pyinputplus as pyip

answer = pyip.inputChoice(["rock", "paper", "scissors"])
print(answer)

使用inputYesNo()函数来获取一个"yes"或"no"的回答:

import pyinputplus as pyip

answer = pyip.inputYesNo("Do you like Python? ")
print(answer)

使用inputBool()函数来获取True或False的回答:

import pyinputplus as pyip

answer = pyip.inputBool("Are you a programmer? ")
print(answer)

使用inputDate()函数来获取日期:

import pyinputplus as pyip

answer = pyip.inputDate("Enter a date: ")
print(answer)

PyInputPlus还提供了其他参数可以进行更多配置,此处不再赘述。

其他用途:

除了上述输入函数之外,PyInputPlus还具有其他一些功能,例如输入验证和多次尝试预定义函数。

输入验证使您可以确保输入符合您的特定要求,例如输入作为电子邮件地址时是否包含"@"。您可以使用如下所示的addValidator()函数来对输入进行验证:

import pyinputplus as pyip

def blacklist(value):
    if "spam" in value.lower():
        raise Exception("Input contains the word 'spam'.")

answer = pyip.inputStr("Enter something: ", validators=[blacklist])
print(answer)

上述代码将确保输入的字符串中不包含"spam",如果字符串包含"spam",将引发一个异常。

另外,PyInputPlus使用以下retry()函数来实现对多次尝试的预定义功能:

import pyinputplus as pyip

answer = pyip.inputNum("Enter a number: ", retryLimit=3, default="N/A")
print(answer)

上述代码将最多尝试3次获取数字作为用户输入,如果用户输入无效,将返回字符串"N/A"。

总之,PyInputPlus是一个更强大和灵活的工具,可帮助您更轻松地获取所需的用户输入。