当前位置:嗨网首页>书籍在线阅读

02-PyInputPlus模块

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

8.1 PyInputPlus模块

PyInputPlus 包含与 input() 类似的、用于多种数据(如数字、日期、E-mail地址等)的函数。如果用户输入了无效的内容,例如格式错误的日期或超出预期范围的数字,那么 PyInputPlus 会再次提示他们输入。 PyInputPlus 还包含其他有用的功能,例如提示用户的次数限制和时间限制(如果要求用户在时限内做出响应)。

PyInputPlus 不是Python标准库的一部分,因此必须利用pip单独安装。要安装 PyInputPlus ,请在命令行中运行 pip install --user pyinputplus 。附录A包含了安装第三方模块的完整说明。要检查 PyInputPlus 是否正确安装,请在交互式环境中导入它:

>>>  import pyinputplus

如果在导入该模块时没有出现错误,就表明已成功安装。

PyInputPlus 具有以下几种用于不同类型输入的函数。

inputStr() 类似于内置的 input() 函数,但具有一般的 PyInputPlus 功能。你还可以将自定义验证函数传递给它。

inputNum() 确保用户输入数字并返回 intfloat 值,这取决于数字是否包含小数点。

inputChoice() 确保用户输入系统提供的选项之一。

inputMenu()inputChoice() 类似,但提供一个带有数字或字母选项的菜单。

inputDatetime() 确保用户输入日期和时间。

inputYesNo() 确保用户输入“yes”或“no”响应。

inputBool() 类似 inputYesNo() ,但接收“True”或“False”响应,并返回一个布尔值。

inputEmail() 确保用户输入有效的E-mail地址。

inputFilepath() 确保用户输入有效的文件路径和文件名,并可以选择检查是否存在具有该名称的文件。

inputPassword() 类似于内置的 input() ,但是在用户输入时显示 * 字符,因此不会在屏幕上显示口令或其他敏感信息。

只要输入了无效内容,这些函数就会自动提示用户:

>>> import pyinputplus as pyip
>>> response = pyip.inputNum() 
five
'five' is not a number.
42
>>>  response
42

每次要调用 PyInputPlus 模块的函数时, import 语句中的 as pyip 代码让我们不必输入 pyinputplus ,而是可以使用较短的 pyip 名称。如果看一下示例,就会发现这些函数与 input() 不同,它们返回的是 intfloat 值,如 423.14 ,而不是字符串 '42''3.14'

正如可以将字符串传递给 input() 以提供提示一样,你也可以将字符串传递给 PyInputPlus 模块的函数的 prompt 关键字参数来显示提示:

>>> response = input('Enter a number: ')
Enter a number:  42
>>> response
'42'
>>> import pyinputplus as pyip
>>> response = pyip.inputInt(prompt='Enter a number: ')
Enter a number: cat 
'cat' is not  an  integer.
Enter a number: 42
>>>  response
42

请使用 Python的 help() 函数查找有关这些函数的更多信息。例如, help(pyip. inputChoice) 显示 inputChoice() 函数的帮助信息。

与Python的内置 input() 不同, PyInputPlus 模块的函数包含一些用于输入验证的附加功能。