小甲鱼python课后练习题通讯录编写
程序员文章站
2022-05-21 23:52:25
...
1.小甲鱼python课后题目
用字典知识编写一个通讯录小脚本
1.首先我们在作业题上模拟一下真实场景,就是先导入一个通讯录,然后改动联系人信息以后还能将其导出。
2.实现代码
#=====导入通讯录=====#
def txtread(path):
f=open(path,'r', encoding='UTF-8' )
for each_line in f:
(name,number)=each_line[0:-2].split(':') # 分割人和电话号码,不读入换行符
data[name]=number
f.close()
def tongxunlu(path):
print('---欢迎进入通讯录程序---')
print('---1:查询联系人资料---')
print('---2:插入新的联系人---')
print('---3:删除已有联系人---')
print('---4:退出通讯录程序---')
command=None
while command!=4:
command = int(input('请输入相关的指令代码:'))
if command == 1:
name = input('请输入联系人姓名:')
if name in data:
print(name + ':', data[name])
else:
print('你查找的联系人不在通讯录中')
elif command==2:
name=input('请输入联系人姓名:')
if name in data:
print('该用户已在通讯录中存在')
print(name+':',data[name])
if input('是否覆盖,输入y or no:')=='y':
number=input('请输入用户联系电话:')
data[name]=number
else:
continue
else:
number = input('请输入用户联系电话:')
data[name] = number
elif command ==3:
name =input('请输入联系人姓名:')
data.pop(name)
print('感谢使用通讯录')
print(data)#打印创建的通讯录
Z = input('是否保存通讯录,y or no:')
while Z:#只要输入不是y和no就循环
if Z=='y':
output = open(path, 'w', encoding='UTF-8')
#将字典分解为键和值的列表,前面不加list会报错
keys=list(data.keys())
values=list(data.values())
l=len(keys)
for i in range(l):
line=str(keys[i])+':'+str(values[i])+'\n'#写入到txt中
output.write(line)
output.close()
break
elif Z=='no':
pass
break
else:
Z = input('是否保存通讯录,y or no:')
if __name__ == '__main__':
data={}
txtread('phonenumber.txt')
tongxunlu('newphonenumber.txt')
3.结果展示
保存的时候如果不输入y or no就会一直循环
上一篇: Redis集群
下一篇: thinkphp模板使用有关问题