第七次上机作业

1.编写程序(add_exception),提示用户输入两个整数,并输出两个整数相加的结果。如果输入的不是整数(例如:字母,浮点数等),要求程序捕获异常,显示“输入内容必须为整数!”,并提示用户重新输入,直至输入正确为止。程序运行结果如下图(代码直接粘贴在答案框,下同)。

def add_exception():

    sum=0

    while True:

        try:

            m=int(input('请输入一个整数:'))

        except ValueError:

            print("输入内容必须为整数!")

        else:

            break

    sum+=m

    while True:

        try:

            n=int(input('请输入一个整数:'))

        except ValueError:

            print("输入内容必须为整数!")

        else:

            break

    sum+=n

    print(m,'+',n,'=',sum)

add_exception()

2.编写程序(file_exception.py),提示用户输入一个文件路径名或文件名,尝试打开该文件并在屏幕输出文件的内容。如果指定的文件不存在,显示“输入的文件未找到!”并要求重新输入文件名;如果文件存在但在读取文件的过程中发生异常,则显示“文件无法正常读出!”并要求重新输入文件名。程序运行结果如下图所示。

def file_exception():

    while True:

        try:

            fn=input("请输入文件名:")

            f=open(fn,'r')

            print(f.read())

        except FileNotFoundError:

            print("输入的文件未找到!")

        except UnicodeDecodeError:

            print("文件无法正常读出!")

        else:

            break

file_exception()

3.实现一个简单的基于字典的通讯录管理系统,系统采用JSON文件保存数据。通讯录设计成字典{name:tel}。程序开始从addressbook.json文件中读取通讯录,然后显示如下图所示的主菜单,包括如下功能:

(1)显示通讯录。如果有记录,显示通讯录清单;否则,提示“通讯录为空”

(2)查询联系人资料。提示用户输入姓名,如果存在,输出联系人信息,否则提示用户不存在,并询问是否创建新联系人;

(3)插入新的联系人。提示用户输入姓名,如果存在,提示是否更新联系人信息;不存在,提示输入电话号码,并插入键-值对。

(4)删除已有联系人。提示用户输入姓名,如果不存在,输出“联系人不存在”的提示信息;如果存在,从通讯录字典中删除键-值对,并输出信息。

(5)退出。将通讯录字典保存到addressbook.json文件中。

import os,json

def show(s):#显示通讯录清单

    if(len(s)==0):

        print("通讯录为空")

    else:

        for k,v in s.items():

            print("姓名={},联系电话={}".format(k,v))

def consult(s):

    name=input("请输入用户的姓名:")

    if name in s:

        print("姓名={},联系电话={}".format(name,s[name]))

    else:

        ask=input("您所查询的用户不存在,是否要创建新联系人(Y/N):")

        if ask in ["Y","y"]:

            tel=input("输入该用户的联系方式:")

            s[name]=tel

def insert(s):

    name = input("请输入用户的姓名:")

    if name in s:

        inq=input("您所输入的用户已存在,是否需要更新(Y/N):")

        if inq in ["Y", "y"]:

            tel = input("输入该用户更新过后的联系方式:")

            s[name] = tel

    else:

        ask = input("您所要插入用户不存在,是否要创建新联系人(Y/N):")

        if ask in ["Y", "y"]:

            tel = input("输入该用户的联系方式:")

            s[name] = tel

def delete(s):

    name = input("请输入用户的姓名:")

    if name not in s:

        print("用户不存在")

    else:

        tel=s.pop(name)

        print("删除联系人:{}:{}".format(name,tel))

s={}

if os.path.exists('addressbook.json'):

    with open(r'addressbook.json', 'r', encoding='utf-8') as f:

        s=json.load(f)

while True:

    print("欢迎使用通讯录程序")

    print("1:显示通讯录清单")

    print("2:查询联系人资料")

    print("3:插入新的联系人")

    print("4:删除已有联系人")

    print("0:退出")

    c=int(input("选择你想进行的功能(0~4):"))

    if(c==1):

        show(s)

    elif c==2:

        consult(s)

    elif c==3:

        insert(s)

    elif c==4:

        delete(s)

    elif c==0:

       break

  • 23
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值