输入验证
输入验证代码用于检查用户输入值,通常执行验证的方式就是要求用户反复输入,直到输入有效的文本,但是为程序的每个input()调用编写输入验证代码是一个十分繁琐且无聊的过程,很多时候会遗漏很多情况,并允许无效输入通过验证,效率很低。第三方模块PyInputPlus可以有效的解决这些问题。
PyInputPlus模块
PyInputPlus模块不是Python标准库的一部分,如需安装可以在命令行运行pip install --user pyinputplus。
PyInputPlus模块中有几种不同类型的输入函数。
函数名称 | 功能 |
inputStr() | 内置的input()函数,但具有PyInputPlus的一般功能 |
inputNum() | 确保用户输入数字,返回int或float值 |
inputInt() | 确保用户输入整数 |
inputFloat() | 确保用户输入浮点数 |
inputChoice() | 确保用户输入系统提供的选项之一 |
inputMenu() | 确保用户输入系统提供的选项之一,并提供带有一个数字或字母选项的菜单 |
inputDatatime() | 确保用户输入日期和时间 |
inputData() | 确保用户输入日期 |
inputTime() | 确保用户输入时间 |
inputMouth() | 确保用户输入月份 |
inputDayOfMouth() | 确保用户输入月份中的一天 |
inputDayOfWeek() | 确保用户输入星期 |
inputIP() |
用户输入 IPv4 或 IPv6 地址 |
inputYesNo() | 确保用户输入yes或no响应 |
inputRegex() |
确保用户输入与提供的正则表达式相匹配 |
inputRegexStr() |
提示用户输入正则表达式字符串 |
inputURL() |
确保用户输入 URL(网页地址) |
inputBool() | 确保用户输入True或False响应,并返回一个布尔值 |
inputEmail() | 确保用户输入有效的用户地址 |
inputFilepath() | 确保用户输入有效的文件地址和文件名 |
inputPassword() | 内置的input()函数,但是在用户输入时显示*字符 |
inputCustom() | 可传入自定义的验证函数 |
关键字参数(可选的)
- prompt:用于输入提示
- min :输入不能小于min的值;
- max:输入不能大于max的值;
- greaterThan:输入必须大于greaterThan的值;
- lessThan:输入必须小于lessThan的值;
- blank : 默认情况下,不允许输入空格,除非把blank设置为True;
- limit:函数在放弃之前尝试接收多少次有效输入;
- timeout:确定用户在多少秒之内必须提供有效输入;
- default:使用该关键字参数时,当输入失效时函数返回default定义的值,不引发异常;
- allowRegexes:利用正则表达式字符串列表确定接收的有效内容;
- blockRegexes:利用正则表达式字符串列表确定拒绝的有效内容;
- allowRegexes的优先级大于blockRegexes;
import pyinputplus as pyIn
#输入值大于等于4 min
input_txt = pyIn.inputNum('Enter num: ', min = 4)
print('Enter number: %s.' % (input_txt))
#输入值小于等于8 max
input_txt = pyIn.inputNum('Enter num: ', max = 8)