求助,关于通讯录程序
第25讲课后作业,动动手那里的通讯录程序有个问题,就是之前输入的姓名、电话在第二次打开程序后均不存在了,因为每次打开程序,都会把字典重置为空字典,请问如何解决这个问题,即保存之前输入的姓名、电话? 你在问什么?Python 还是 C/C++,你的代码在哪里? jackz007 发表于 2021-10-24 16:39你在问什么?Python 还是 C/C++,你的代码在哪里?
《零基础学习python》第25讲课后作业。 liujie6704 发表于 2021-10-25 10:26
《零基础学习python》第25讲课后作业。
这个作业的内容是什么,你的代码在哪里? jackz007 发表于 2021-10-25 10:28
这个作业的内容是什么,你的代码在哪里?
print('|--- 欢迎进入通讯录程序 ---|')
print('|--- 1:查询联系人资料---|')
print('|--- 2:插入新的联系人---|')
print('|--- 3:删除已有联系人---|')
print('|--- 4:退出通讯录程序---|')
contacts = dict()
while 1:
instr = int(input('\n请输入相关的指令代码:'))
if instr == 1:
name = input('请输入联系人姓名:')
if name in contacts:
print(name + ' : ' + contacts)
else:
print('您输入的姓名不再通讯录中!')
if instr == 2:
name = input('请输入联系人姓名:')
if name in contacts:
print('您输入的姓名在通讯录中已存在 -->> ', end='')
print(name + ' : ' + contacts)
if input('是否修改用户资料(YES/NO):') == 'YES':
contacts = input('请输入用户联系电话:')
else:
contacts = input('请输入用户联系电话:')
if instr == 3:
name = input('请输入联系人姓名:')
if name in contacts:
del(contacts) # 也可以使用dict.pop()
else:
print('您输入的联系人不存在。')
if instr == 4:
break
print('|--- 感谢使用通讯录程序 ---|')
本帖最后由 傻眼貓咪 于 2021-10-25 13:13 编辑
兄弟,首先你必须了解什么是程序语言,无论是 C/C++ 或 Python 或 Java,代码只是代码啊,最终还是看你想把代码变成什么东西啊,比如电脑新软体、网页、手机游戏、电脑游戏等等.....,在还没有变成这些东西之前,它只是个代码而已,编译器或解释器只是负责诠译你的代码给系统知道而已,并不算完成新软体或游戏啊,你所运行的所有数据,在你关闭代码同时销毁,不可能储存的(除非设置数据库保存,或储存在 .txt 文件里),这些都是基本知识,在学习程序语言前就应该需要了解这些。{:10_277:}{:10_277:}{:10_277:} 这个不是你代码的问题,
简单的说:你每次写入的姓名、电话之类的数据信息的有效周期就是在你程序运行的期间,
当你结束这个程序,这个程序运行期间保存的数据都会被删除。
你可以想想,要是你每次写的代码,运行中生成的数据,在结束运行后,不被删除,一直保存在你的电脑里,
那么随着你的代码写的越来越多,运行后产生的数据也越来越多,占用的电脑内存也就越来越多,
这样就会导致你的电脑就会越来越卡,所以程序运行期间保存的数据在程序结束后都会被删除。 本帖最后由 jackz007 于 2021-10-25 16:12 编辑
#coding:gbk
fn , fc = 'data.txt', False
contacts = dict()
try:
f = open(fn)
for x in f:
if x . strip():
a , b = x . strip() . split(' , ')
contacts = b . strip()
f . close()
except:
pass
print('|--- 欢迎进入通讯录程序 ---|')
print('|--- 1:查询联系人资料---|')
print('|--- 2:插入新的联系人---|')
print('|--- 3:删除已有联系人---|')
print('|--- 4:退出通讯录程序---|')
while 1:
instr = int(input('\n请输入相关的指令代码:'))
if instr == 1:
name = input('请输入联系人姓名:')
if name in contacts:
print(name + ' : ' + contacts)
else:
print('您输入的姓名不再通讯录中!')
if instr == 2:
name = input('请输入联系人姓名:')
if name in contacts:
print('您输入的姓名在通讯录中已存在 -->> ', end='')
print(name + ' : ' + contacts)
if input('是否修改用户资料(YES/NO):') == 'YES':
contacts = input('请输入用户联系电话:')
else:
contacts = input('请输入用户联系电话:')
fc = True
if instr == 3:
name = input('请输入联系人姓名:')
if name in contacts:
del(contacts) # 也可以使用dict.pop()
fc = True
else:
print('您输入的联系人不存在。')
if instr == 4:
if fc:
f = open(fn , 'wt')
for a , b in contacts . items():
f . write(a + ' , ' + b + '\n')
f . close()
break
print('|--- 感谢使用通讯录程序 ---|')
运行实况:
D:\0002.Exercise\Python>python tx.py
|--- 欢迎进入通讯录程序 ---|
|--- 1:查询联系人资料---|
|--- 2:插入新的联系人---|
|--- 3:删除已有联系人---|
|--- 4:退出通讯录程序---|
请输入相关的指令代码:2
请输入联系人姓名:abc
请输入用户联系电话:123
请输入相关的指令代码:2
请输入联系人姓名:cde
请输入用户联系电话:234
请输入相关的指令代码:2
请输入联系人姓名:def
请输入用户联系电话:345
请输入相关的指令代码:2
请输入联系人姓名:efg
请输入用户联系电话:456
请输入相关的指令代码:4
|--- 感谢使用通讯录程序 ---|
D:\0002.Exercise\Python>python tx.py
|--- 欢迎进入通讯录程序 ---|
|--- 1:查询联系人资料---|
|--- 2:插入新的联系人---|
|--- 3:删除已有联系人---|
|--- 4:退出通讯录程序---|
请输入相关的指令代码:1
请输入联系人姓名:cde
cde : 234
请输入相关的指令代码:1
请输入联系人姓名:efg
efg : 456
请输入相关的指令代码:4
|--- 感谢使用通讯录程序 ---|
D:\0002.Exercise\Python> jackz007 发表于 2021-10-25 15:50
运行实况:
谢谢1
页:
[1]