python的应用:建立一个命令行管理程序,功能:在命令行输入名字,就可以得到相关人员的基本信息

#Filename:tongxunlu.py
#问题:建立一个命令行人员管理程序
#思路:
#1.创建一个人的类,来设置人的基本信息,比如:年龄,电话号,性别
#2.用字典来存储人的对象,键可以为名字,值为person类
#3.利用pickle模块将对象存储
#4.用字典的内置方法实现增删改查
#效果:在命令行输入名字,就可以得到相关人的基本信息。

import pickle

#第一部分:创建人的类,用初始化的方式将相关内容赋值
class person:
    def __init__(self,age,sex,phone):
        self.age=age
        self.sex=sex
        self.phone=phone
#################################################
#第二部分,用字典存储对象,有添加操作和删除操作
find={'zhangsan':person('5','boy','13811112222')
    }
find['lisi']=person('20','boy','12325251412')
del find['lisi']
find['lisi']=person('21','boy','12325211412')
find['wangwu']=person('24','boy','12321151412')
find['zhaosi']=person('21','boy','12115251412')
find['wangqi']=person('25','boy','12325111412')
find['zhaoyi']=person('24','boy','12555251412')
find['qianba']=person('21','boy','12325255412')
find['jinger']=person('26','boy','12325244412')
find['zhongliu']=person('24','boy','12344251412')
##################################################
#第三部分:将字典这个对象存储到文件当中
shujvfile='shujv.data'
f=open(shujvfile,'wb')#打开这个文件
pickle.dump(find,f)#用pickle的dump方法将这个对象添加到文件当中
f.close()
##################################################
#第四部分:将这个文件打开
f=open(shujvfile,'rb')
find1=pickle.load(f)#将所存的内容加载出来
print('''\n输入姓名即可查询信息''')
##################################################
#第五部分:无限循环,判断输入的内容,给予对应的操作
while True:
    something=input()
    if something=='exit':#退出功能
        break
    elif something in find1:#查找功能
        print(something,end=' ')
        print(find1[something].age,end=' ')
        print(find1[something].sex,end=' ')
        print(find1[something].phone)
    elif something=='dir':#列出字典内容的功能
        for key,value in find.items():
            print(key,value.age,value.sex,value.phone)
    else:#如果找不到打印错误信息
        print('请输入已经存在的联系人')
########################################################

结果:

输入姓名即可查询信息
zhangsan
zhangsan 5 boy 13811112222
lisi
lisi 21 boy 12325211412
dir
zhangsan 5 boy 13811112222
lisi 21 boy 12325211412
wangwu 24 boy 12321151412
zhaosi 21 boy 12115251412
wangqi 25 boy 12325111412
zhaoyi 24 boy 12555251412
qianba 21 boy 12325255412
jinger 26 boy 12325244412
zhongliu 24 boy 12344251412
exit

猜你喜欢

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