python建立一个命令行人员管理程序(通讯录)---------加强版(内附原代码,实现的功能,输入名字即可查询,输入特定的内容即可添加和删除)

本篇文章是下面这个文章的加强版

https://blog.csdn.net/qq_41901915/article/details/82424647

与前文的不同,加入了命令行直接添加和删除元素

演示代码:

#Filename:tongxunlu.py
#问题:建立一个命令行人员管理程序
#思路:
#1.创建一个人的类,来设置人的基本信息,比如:年龄,电话号,性别
#2.用字典来存储人的对象,键可以为名字,值为person类
#3.利用pickle模块将对象存储
#4.用字典的内置方法实现增删改查
#效果:在命令行输入名字,就可以得到相关人的基本信息,输入save根据相关提示即可存储,输入del即可删除,输入dir即可列出通讯录
import pickle
import sys
#第一部分:创建人的类,用初始化的方式将相关内容赋值
class person:
    def __init__(self,age,sex,phone):
        self.age=age
        self.sex=sex
        self.phone=phone
shujvfile='shujv.data'
#################################################
#第二部分,用字典存储对象,有添加操作和删除操作,注意,这个部分第一次运行的时候不要加注释,因为那个文件还没有生成
#等第一次运行之后,那个文件生成了,这一段代码需要加注释,然后每次读取的就是内存的find字典了。
#find={'zhangsan':person('5','boy','13811112222')
#    }
#f=open(shujvfile,'wb')#打开这个文件
#pickle.dump(find,f)#用pickle的dump方法将这个对象添加到文件当中
#f.close()
#f=open(shujvfile,'rb')
#find=pickle.load(f)#将所存的内容加载出来
##################################################
#第三部分,用函数实现增删
print('''\n输入姓名即可查询信息
输入save存储信息
输入del删除信息
输入dir列出通讯录
输入exit退出''')
def add(name,age,sex,phone):#将输入的内容存储
    find[name]=person(age,sex,phone)
    f=open(shujvfile,'wb')
    pickle.dump(find,f)
    f.close()
def dell(name):#将输入的内容删除
    del find[name]
    f=open(shujvfile,'wb')
    pickle.dump(find,f)
    f.close()
###################################################
#第四部分:无限循环,判断输入的内容,给予对应的操作
while True:
    f=open(shujvfile,'rb')
    find=pickle.load(f)#将所存的内容加载出来
    something=input().strip()
    if something=='exit':#退出功能
        break
    elif something in find:#查找功能
        print(something,end=' ')
        print(find[something].age,end=' ')
        print(find[something].sex,end=' ')
        print(find[something].phone)
    elif something=='dir':#列出字典内容的功能
        for key,value in find.items():
            print(key,value.age,value.sex,value.phone)
    elif something=='save':
        name=input('输入姓名\n').strip()
        if name in find:
            print('你选择查询的用户已存在,请输入姓名查询')
        else:
            age=input('请输入年龄\n').strip()
            sex=input('请输入性别\n').strip()
            phone=input('请输入电话号码\n').strip()
            add(name,age,sex,phone)
            print('{0}已经储存成功'.format(name))
    elif something=='del':
        name=input('请输入需要删除的姓名\n').strip()
        if name in find:
            dell(name)
            print('已将{0}删除'.format(name))
    elif something=='exit':
        sys.exit(0)
    else:#如果找不到打印错误信息
        print('请输入已经存在的联系人')
########################################################

演示结果:

输入姓名即可查询信息
输入save存储信息
输入del删除信息
输入dir列出通讯录
zhangsan
zhangsan 5 boy 13811112222
lis
请输入已经存在的联系人
lisi
lisi 22 boy 135
save
输入姓名
zhangqiling
请输入年龄
22
请输入性别
boy
请输入电话号码
13654562458
zhangqiling已经储存成功
zhangqiling
zhangqiling 22 boy 13654562458
del
请输入需要删除的姓名
lisi
已将lisi删除
lisi
请输入已经存在的联系人
dir
zhangsan 5 boy 13811112222
zhangqiling 22 boy 13654562458

exit
>>> 

猜你喜欢

转载自blog.csdn.net/qq_41901915/article/details/82682947