高考后即将分道扬镳,悄悄用python记录下三年情谊的“同学录”

粥白 等级 1261 0 0

又到了一年的毕业季, 今天就高考的最后一天了,记得当年中小学快毕业时,班上的同学都在相互交换写同学录,一本小小的同学录,装载着都是青春的回忆,或幼稚或成熟的字体,或长或短的语句,或认真或戏虐的毕业留言,让你瞬间回忆起快淡忘的那些人,那些事。

毕业在即,我教你用python制作一份独一无二的同学录,留给未来回味,不给青春留遗憾

本文使用的逻辑是利用字典来保存学生信息,因为刚好看到了python的settitemgettiem函数,就单独建了一个类来保存学生的信息。

学生的通讯录不外乎增删改查,相对来说是比较简单的,写完这个能加深对字典的基本操作和类、对象的一些具体了解。

主要定义了一个类,来控制整个流程,学生的信息是没有保存在本地硬盘或者数据库,所以一旦关闭数据就不不见了,不过这个程序也是一直无限循环,不主动关闭的话数据就一直都在。

定义了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()

效果图: 高考后即将分道扬镳,悄悄用python记录下三年情谊的“同学录” 高考后即将分道扬镳,悄悄用python记录下三年情谊的“同学录” 修改学生信息: 高考后即将分道扬镳,悄悄用python记录下三年情谊的“同学录” 删除学生信息: 高考后即将分道扬镳,悄悄用python记录下三年情谊的“同学录”

悄悄和你们说哦,一定要学着做这个哦,这样你们的男神(女神)的联系方式不就到手了嘛, 有了联系方式,爱情还会远嘛,对头不。(麻烦各位客官一键三连)

收藏
评论区

相关推荐

15. Python 程序运行速度如何提高十倍?第一遍滚雪球学 Python 收工
本篇文章将给大家介绍 Python 多线程与多进程相关知识,学习完该知识点之后,你的 Python 程序将进入另一个高峰。 <center<font colorred缓解一下视疲劳</font</center 15. Python 程序运行速度如何提高十倍?第一遍滚雪球学 Python 收工(https://imghelloworld.oss
Python初学者必备书籍《Python入门经典》高清PDF版|百度网盘免费下载|Python初学者,自学Python必读
提取码:1028以及前文提到的学习路线图内容简介Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python可以用于很多的领域,从科学计算到游戏开发。《Python入门经典》是面向Python初学者的学习指南,详细介绍了Python编程基础,以及一些高级概念,如面向对象编程。全书分为24章。第1章介绍了Python的背景和安装方法。第2章
Atom的python插件和常用插件
python: simplified-chinese-menu:中文汉化(英文差的) 代码高亮:Atom自带 自动补全:autocomplete-python 语法检查:linter-flake8 定义跳转:python-tools 代码运行:atom-runner (只能输出,不能输入),atom-python-run(Windows,可以输入
CentOS升级Python到2.7版本
查看python的版本 python -V Python 2.4.3 1.先安装GCC yum -y install gcc 2.下载Python-2.7.2 wget http://python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz2 3.解压Python-2.7.2
Flask教程(十五)日志
### 软硬件环境 * windows 10 64bit * anaconda3 with python 3.7 * pycharm 2020.1.2 * flask 1.1.2 ### 简介 `flask`日志使用标准的`python``logging`。所有与`flask`相关的消息都用`ap
Python import与from import使用及区别介绍
Python程序可以调用一组基本的函数(即内建函数),比如print()、input()和len()等函数。接下来通过本文给大家介绍Python import与from import使用及区别介绍,感兴趣的朋友一起看看吧 下面介绍下Python import与from import使用,具体内容如下所示: Python程序可以调用一组基本的函数(即内建函
Python 字符串与基本语句
Python特点 -------- * python中没有变量的声明 * 语句结束后没有分号 * 严格要求缩进 * 支持很长很长的大数运算(直接在Idle中输入即可) * 用“#”来注释 BIF:Bulit-in functions(内置函数) ---------------------------- * input
Python 官方中文教程(简)
Python 官方教程 =========== 前言 -- * 这是一次系统学习Python官方教程的学习笔记 * 整个教程一共16章, 在学习过程中记录自己不知道的和一些重要的知识, 水平有限, 请指正. * [Python3.7 官方教程](https://www.oschina.net/action/GoToLink?url=https
Python 开发:制作一个简易的点菜系统(附源码)
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于海唤鱼杂记客栈 ,作者:海唤鱼杂记客栈 ![Python GUI编程:制作一个简易的点菜系统(附源码)](https://oscimg.oschina.net/oscnet/up-7f6390bf0f7f63953f8c28
Python中Requests库的高级用法
前面讲了Python的urllib库的使用和方法,Python网络数据采集Urllib库的基本使用 ,Python的urllib高级用法 。 今天我们来学习下Python中Requests库的用法。([官方手册](https://www.oschina.net/action/GoToLink?url=http%3A%2F%2Fdocs.python-req
Python中的raw_input()和input()
raw\_input()和input()都是python中的内建函数,用于读取控制台用户的输入,但有所区别: ------------------------------------------------------ [nr@localhost conf]$ python Python 2.7.5 (default, Aug 4 201
Python基础:四、python的优缺点
python是一门动态解释性的强类型语言 -------------------- ### python的优点: **1\. python的定位是"优雅"、"明确"、"简单"**         python程序看上去总是简单易懂,初学者学python,不但入门容易,二缺将来深入下去,可以边啊些那些非常复杂的程序。 **2\. 开发效率高**  
Python学习心得!
计算机基础: 低级语言=>>机器码 高级语言=>>字节码 高级转向低级然后执行,只是高级语言用特定的字符代替了机器码中的“010101” 高级程序语言的就业方向: Python,Java:网页&后台 Python的优缺点:开发效率高,执行低。 Java的优缺点:开发效率低,执行高。 Python的种类:Jpython、Ironp
Python源码在Win下和Linux下的编译,C++调用Python库绘制等高线
### 目录 前言 Python源码以及VS2017的准备 Python源码 VS2017 Windows下编译Python源码 编译命令 编译步骤 编译后的配置 添加注册表 Win10中编译Python源码小结 Windows中C++调用Python代码绘制等高线图 CMakeLists.txt文件如下: Python代码如下: CPP文件:
Python进阶丨如何创建你的第一个Python元类?
> **摘要:**通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类。 Python元类设置类的行为和规则。元类有助于修改类的实例,并且相当复杂,是Python编程的高级功能之一。通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类。本文介绍以下概念: * * 什么是Python元类?