01-输入验证
第8章 输入验证
“输入验证”代码检查用户输入值(例如, `input()` 函数中的文本)的格式是否正确。例如,如果你希望用户输入年龄,那么代码不应该接受无意义的答案,例如负数(超出可接受的整数范围)或单词(数据类型错误)。输入验证还可以防止错误或安全漏洞。如果编写一个 `withdrawFromAccount()` 函数,该函数接收一个参数,表示要从账户中减去的金额,那么需要确保金额为正数。如果 `withdrawFromAccount()` 函数从账户中减去负数,那么“提款”最后会变成“存款”。通常,我们执行输入验证的方式是反复要求用户输入,直到他们输入有效的文本,如下所示:
while True:
print('Enter your age:')
age = input()
try:
age = int(age)
except:
print('Please use numeric digits.')
continue
if age < 1:
print('Please enter a positive number.')
continue
break
print(f'Your age is {age}.')
运行这个程序,输出结果可能如下所示:
Enter your age:
five
Please use numeric digits.
Enter your age:
-2
Please enter a positive number.
Enter your age:
30
Your age is 30.
运行这段代码,系统会提示你输入年龄,直到你输入有效的年龄为止。这样可以确保在执行退出 while
循环时, age
变量包含有效值,以后不会使程序崩溃。
但是,为程序中的每个 input()
调用编写输入验证代码会很乏味。此外,你可能会遗漏某些情况,并允许无效输入通过检查。在本章中,你将学习如何使用第三方PyInputPlus模块进行输入验证。