实例1:身份归属地查询添加异常
在第9章实例1中,用户通过输入身份证前6位数字可以查询到身份证归属地,此案例只实现了归属地查询的功能,如果用户未按照指定的提示输入合法数据,程序不会给出任何提示。
本实例要求通过添加异常处理功能,完善第9章的身份归属地查询程序。
实例目标
- 掌握try...except语句的使用
实例分析
由于身份证归属地查询程序需要访问当前路径下的“身份证码值对照表.txt”文件,若在读取时没有在当前路径下找到该文件,则会引发FileNotFoundError异常,所以本实例直接使用try...except语句捕获并处理FileNotFoundError异常即可。
代码实现
import json
try:
f = open("身份证码值对照表.txt", 'r', encoding='utf-8')
content = f.read()
content_dict = json.loads(content) # 转换为字典类型
address = input('请输入身份证前6位:')
for key, val in content_dict.items():
if key == address:
print(val)
f.close()
except FileNotFoundError:
print("文件不存在")
以上代码对打开文件操作部分进行异常捕获与处理,并指定捕获的异常类型为FileNotFoundError。
代码测试
运行程序,文件存在的结果如下:
请输入身份证前6位:110000
北京市
运行程序,文件不存在的结果如下:
文件不存在