又到了一年的毕业季, 今天就高考的最后一天了,记得当年中小学快毕业时,班上的同学都在相互交换写同学录,一本小小的同学录,装载着都是青春的回忆,或幼稚或成熟的字体,或长或短的语句,或认真或戏虐的毕业留言,让你瞬间回忆起快淡忘的那些人,那些事。
毕业在即,我教你用python制作一份独一无二的同学录,留给未来回味,不给青春留遗憾。
本文使用的逻辑是利用字典来保存学生信息,因为刚好看到了python的settitem、gettiem函数,就单独建了一个类来保存学生的信息。
学生的通讯录不外乎增删改查,相对来说是比较简单的,写完这个能加深对字典的基本操作和类、对象的一些具体了解。
主要定义了一个类,来控制整个流程,学生的信息是没有保存在本地硬盘或者数据库,所以一旦关闭数据就不不见了,不过这个程序也是一直无限循环,不主动关闭的话数据就一直都在。
定义了add()函数(用来添加学生信息),del()函数(用来删除信息),update()函数(用来更新修改信息),select()函数(用来查找学生信息),WelcomeInfo()函数,主页面的菜单展示,menu()函数(用来进行菜单选择)。
具体代码如下:
-- coding: utf-8 --
author = 'zhao'
date = '2017/12/9 13:04'
import os
class StudentInfo(object):
"""
用这个类的字典来存储学生通讯录信息
"""
def init(self, args, *kwargs):
self.dict = {}
self.dict[args] = kwargs
魔术函数,让实例化的对象(返回的那个变量)能用列表的方式显示
def getitem(self, key):
return self.dict[key]
魔术函数,让实例化的对象(返回的那个变量)能用字典的方式赋值
def setitem(self, key, value):
self.dict[key] = value
class StudentNotes(object):
"""
这个类用来实例化通讯录
"""
def init(self):
self.Studentsinfo = StudentInfo()
self.meau()
开始菜单界面
def WelcomeInfo(self):
print '' * 20, '欢迎使用xx学生通讯录', '' * 20
print '' * 20, '[1] 查询学生信息 ', '' * 20
print '' * 20, '[2] 添加学生 ', '' * 20
print '' * 20, '[3] 修改学生信息 ', '' * 20
print '' * 20, '[4] 删除学生信息 ', '' * 20
菜单选择功能
菜单函数
def meau(self):
如果输入为0,则一直显示菜单页面
iput = 0
while not iput:
self.WelcomeInfo()
iput = raw_input('请输入括号内数字进行下一步操作:')
根据输入的数字来选择功能函数
if iput in str(range(1, 5)):
if iput == '1':
self.select()
elif iput == '2':
self.add()
elif iput == '3':
self.update()
elif iput == '4':
self.delete()
else:
print u"输入错误!请重新输入"
os.system('cls')
iput = 0
查询函数
def select(self):
print u"输入exit可退出菜单"
obj = raw_input('请输入查询对象的姓名进行查询:').decode('utf-8')
如果输入exit则退回菜单
if obj == 'exit':
self.meau()
else:
try:
如果能找到对象,并没有任何报错,则显示学生信息
student = self.Studentsinfo[obj]
print u"学生姓名为:%s" % obj
print u"地址:%s" % student[0]
print u"手机:%s" % student[1]
print u"年龄:%s" % student[2]
print u"班级:%s" % student[3]
print u"性别:%s" % student[4]
self.select()
except Exception:
print u"找不到你输入的学生,请重新查询"
self.select()
添加学生信息函数
def add(self):
name = raw_input('请输入学生姓名:').decode('utf-8')
address = raw_input('请输入学生地址:').decode('utf-8')
mobile = raw_input('请输入学生手机号码:').decode('utf-8')
age = raw_input('请输入学生年龄:').decode('utf-8')
classes = raw_input('请输入学生班级:').decode('utf-8')
sex = raw_input('请输入学生性别:男 or 女:').decode('utf-8')
如果输入的信息不为空,则添加成功,否则重新填写
if name and address and mobile and age and classes and sex:
这个类的赋值就相当于字典的赋值方法,后面这一堆都是属于一个value,所以要一起赋值
self.Studentsinfo[name] = (address, mobile, age, classes, sex)
print u"添加成功!"
self.meau()
else:
print u"输入有误请重新输入"
self.add()
修改学生信息函数
def update(self):
print u"输入exit可退出菜单"
upname = raw_input('请输入需要修改信息的学生姓名进行修改:').decode('utf-8')
if upname == 'exit':
self.meau()
else:
try:
update = self.Studentsinfo.dict[upname]
print u'请修改%s相关信息:' % upname
address = raw_input('请输入学生地址:').decode('utf-8')
mobile = raw_input('请输入学生手机号码:').decode('utf-8')
age = raw_input('请输入学生年龄:').decode('utf-8')
classes = raw_input('请输入学生班级:').decode('utf-8')
sex = raw_input('请输入学生性别:男 or 女:').decode('utf-8')
self.Studentsinfo[upname] = (address, mobile, age, classes, sex)
print u"修改成功!"
self.update()
except Exception:
print u'输入错误或者没有此学生!'
self.update()
删除学生信息
def delete(self):
print u"输入exit可退出菜单"
dname = raw_input('请输入要删除学生的姓名').decode('utf-8')
if dname == 'exit':
self.meau()
else:
try:
student = self.Studentsinfo[dname]
print u"该学生信息为:"
print u"地址:%s" % student[0]
print u"手机:%s" % student[1]
print u"年龄:%s" % student[2]
print u"班级:%s" % student[3]
print u"性别:%s" % student[4]
sure = raw_input('确认删除请输入yes,退回请输入no:')
if sure == 'yes':
self.Studentsinfo.dict.pop(dname)
print "删除成功"
else:
pass
except Exception:
print "找不到此学生,请重新输入"
self.delete()
if name == 'main':
Note = StudentNotes()
效果图: 修改学生信息: 删除学生信息:
悄悄和你们说哦,一定要学着做这个哦,这样你们的男神(女神)的联系方式不就到手了嘛, 有了联系方式,爱情还会远嘛,对头不。(麻烦各位客官一键三连)