662|4

539

帖子

3

TA的资源

纯净的硅(初级)

楼主
 

书籍《Python编程快速上手(第2版)》阅读心得4、输入验证 [复制链接]

本篇学习Python的输入验证。

“输入验证”代码检查用户输入值的格式是否正确。比如说期望用户输入电话号码,但是用户实际上有可能输入非数字的字母,这个时候就需要对用户的输入信息进行验证,以确保用户输入的内容格式是正确的。

当然,程序员可以通过编写Python程序代码来实现对用户输入信息的检查,但是如果在比较复杂的情况下还是有可能漏掉一些情况的。

为了解决这个问题,Python提供了一个现成的第三方模块PyInputPlus用来验证用户输入。

PyInputPlus并不是标准的Python模块,所有如果要使用该模块需要手动安装。

 

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

 

如果输入了不符合要求的内容,这些函数会自动给出提示信息。

来看个例子:

 

第一次输入了five,因为不是数字,所有模块显示了“five is not a number”提示信息。

第二次输入了数字32,符合要求,所有没有提示信息。

 

另外,PyInputPlus模块还能带参数,用来显示一些辅助信息,如下:

 

在输入之前会显示输入提示信息:”Enter a number: “,这样对用户会更加友好。

PyInputPlus模块的功能远不止这些,还有很多其它的高级特性,比Python自带的Input功能强大太多,接下来会一一进行学习。

 

1、PyInputPlus模块的关键字参数min、max、greaterThan和lessThan

接受int和float数的inputNum()、inputInt()和inputFloat()函数具有min、max、greaterThan和lessThan关键字参数,用于指定有效值范围。

 

min参数表示输入的数字必须大于等于min值;

max参数表示输入的数字必须小于等于max值;

greaterThan表示输入的数字必须大于greaterThan值;

lessThan表示输入的数字必须小于lessThan值。

 

2、关键字参数blank

默认情况下,PyInpuPlus模块是不允许输入空格字符的,除非指定blank参数为True。

 

 

3、关键字参数limit、timeout、default

默认情况下PyInputPlus模块函数会一直提示用户输入信息,除非输入正确。如果希望某个函数经过一定次数的尝试或一定的时间后停止要求用户输入,就可以使用limit和timeout参数。

limit用来限制次数,timeout用来是限制时间,单位是秒。

 

 

 

4、关键字参数allowRegexes和blockRegexes

PyInputPlus也支持使用正则表达式来指定哪些字符可以输入,或者哪些不能输入。

 

上面的例子中,允许输入字母I,V,X,L,C,D,M,zero

 

 

上面的例子就拒绝02468数字输入,但是只有输入数字的每一位都在列表中的时候才会拒绝,这个是要特别注意的地方。

 

5、将自定义验证函数传递给inputCustom()

PyInputPlus模块支持调用用户自定义的函数去验证用户的输入。

来看个例子:

import pyinputplus as pyip

def addsUpToTen(numbers):
    numbersList = list(numbers)
    for i, digit in enumerate(numbersList):
        numbersList[i] = int(digit)
    if sum(numbersList) != 10:
        raise Exception('The digits must add up to 10, not %s.' % (sum(numbersList)))
    return int(numbers)

response = pyip.inputCustom(addsUpToTen)
print(response)

运行结果:

 

以上列子,必须满足每一位数字加起来为10,如果加起来不为10则显示提示信息。

 

以上就是关于输入验证模块PyInputPlus的有个的全部内容,对于实际项目还是非常有帮助的。

最新回复

其实就是对input函数结果的再一次细粒度处理,实质还是字符串处理,对伐   详情 回复 发表于 2024-5-11 11:04
点赞 关注
 
 

回复
举报

6841

帖子

11

TA的资源

版主

沙发
 
挺用心的学习了,感谢大佬的分享!

点评

一起学习  详情 回复 发表于 2024-5-14 20:47
 
 
 

回复

1123

帖子

1

TA的资源

五彩晶圆(初级)

板凳
 

其实就是对input函数结果的再一次细粒度处理,实质还是字符串处理,对伐

点评

非常正确,只要定义好规则,就会自动检查参数了,还是很有用的  详情 回复 发表于 2024-5-14 20:47
 
 
 

回复

539

帖子

3

TA的资源

纯净的硅(初级)

4
 
hellokitty_bean 发表于 2024-5-11 11:04 其实就是对input函数结果的再一次细粒度处理,实质还是字符串处理,对伐

非常正确,只要定义好规则,就会自动检查参数了,还是很有用的


 
 
 

回复

539

帖子

3

TA的资源

纯净的硅(初级)

5
 
lugl4313820 发表于 2024-5-11 06:24 挺用心的学习了,感谢大佬的分享!

一起学习


 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表