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