确认与校验 | Validation and verification
/ 3 min read
在向计算机输入时,为了保证输入内容的正确性,人们设计了一种自动程序自动校验输入内容,以保证程序正常运行:
书中提供了以下几种校验(Validation)的应用实例:
- 值域检验(Range check)
- 长度检验(Length check)
- 类型检验(Type check)
- 空置检验(Presence check)
- 格式/位数检验(Format check and check digit)
值域检验:保证用户输入的数值在一定范围内。如成绩的值域必须为0-100之间的数字。
OUTPUT "Please enter the student's mark "REPEATINPUT StudentMarkIF StudentMark < 0 OR StudentMark > 100 THEN OUTPUT "The student's mark should be in the range 0 to 100, please re-enter the mark "ENDIFUNTIL StudentMark >= 0 AND StudentMark <= 100长度检验:对字符串进行长度检验。如网站注册用户名不超过20个字符;密码不超过64个字符。
OUTPUT "Please enter your password of eightcharacters "REPEAT INPUT Password IF LENGTH(Password) <> 8 THEN OUTPUT "Your password must be exactly eight characters, please re-enter " ENDIFUNTIL LENGTH(Password) = 8类型检验:对用户输入的类型进行校验:如成绩系统要求必须输入整数(integer);用户昵称必须为字符串(string)
OUTPUT "Please enter your family name "REPEAT INPUT FamilyName IF LENGTH(FamilyName) > 30 OR LENGTH(FamilyName) < 2 THEN OUTPUT "Too short or too long, please re-enter " ENDIFUNTIL LENGTH(FamilyName) <= 30 AND LENGTH(FamilyName) >= 2空置检验:不得存在空值。如网站注册的用户名不能为空。
OUTPUT "How many brothers do you have? "REPEAT INPUT NumberOfBrothers IF NumberOfBrothers <> DIV(NumberOfBrothers, 1) THEN OUTPUT "This must be a whole number, please re-enter" ENDIFUNTIL NumberOfBrothers = DIV(NumberOfBrothers, 1)格式/位数检验:要求输入的内容满足特定格式和位数。如手机号码校验:必须为1开头,长度为11位的纯数字。
OUTPUT "Please enter your email address "REPEAT INPUT EmailAddress IF EmailAddress = "" THEN OUTPUT "*=Required " ENDIFUNTIL EmailAddress <> ""校验(Verification)的应用实例:
- 二次输入(Double entry)
- 视觉校验(Screen/visual check)
二次输入:将同样的字符输入两遍,以确保没有按错键盘或输入错我的情况。如密码要求再次输入
视觉校验:将已输入的内容再次呈现,人工检查。如提交表单之前再次提示输入的数据。
Homework: 使用Python写出两次密码校验程序
程序运行演示