身份归属地查询添加异常--课后程序(Python程序开发案例教程-黑马程序员编著-第10章-课后作业)

实例1:身份归属地查询添加异常 在第9章实例1中,用户通过输入身份证前6位数字可以查询到身份证归属地,此案例只实现了归属地查询的功能,如果用户未按照指定的提示

实例1:身份归属地查询添加异常

在第9章实例1中,用户通过输入身份证前6位数字可以查询到身份证归属地,此案例只实现了归属地查询的功能,如果用户未按照指定的提示输入合法数据,程序不会给出任何提示。

本实例要求通过添加异常处理功能,完善第9章的身份归属地查询程序。

实例目标

  1. 掌握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

北京市

运行程序,文件不存在的结果如下:

文件不存在