python3学生名片管理v2.0版


Posted in Python onNovember 29, 2018

python学生名片管理vv2.0是在1.0的基础上增加部分功能,实现将数据存入文件保存,以便于程序停止后还能再次取到数据。具体实现请看如下部分:

card_main.py

import sys
from One.card_func2 import *

def head():
 print('*' * 30)
 print('学生信息管理系统v2.0')
 print('1.添加学生\t2.显示所有\t3.查询学生\t0.退出系统')
 print('*' * 30)


def main():
 while True:
 head()
 num = input('输入操作:')
 if num == '1':
  print('选择功能添加学生')
  add_card()
 elif num == '2':
  print('选择功能添显示所有')
  show_all()
 elif num == '3':
  print('选择功能查询学生')
  search_card()
 elif num == '0':
  sys.exit()
 else:
  print('输入有误,命令无效')


if __name__ == '__main__':
 main()

card_func2.py

import json
import time

stutent_list = []

def add_card():
 name = input('请输入姓名:')
 age = input('请输入年龄:')
 qq = input('请输入QQ:')
 mail = input('请输入邮箱:')
 dict = {}
 dict['name'] = name
 dict['age'] = age
 dict['qq'] = qq
 dict['mail'] = mail
 stutent_list.append(dict)
 memory(stutent_list)

def memory(stutent_list): # 将数据存入文件
 with open('student.json', 'w') as f:
 for i in stutent_list:
  json_i = json.dumps(i)
  f.write(json_i+'\n')
 f.close()


def repick(): # 从文件中去除数据
 risk_result = []
 with open('student.json', 'r') as f:
 risk_new_list = f.read().split('\n')[:-1]
 for x in risk_new_list:
  json_x = json.loads(x)
  risk_result.append(json_x)
 f.close()
 return risk_result


def show_all():
 global stutent_list
 stutent_list = repick()
 table_head()
 for dict in stutent_list:
 print('-' * 32)
 print('| %s\t|\t%s\t|\t%s\t|\t%s\t|' % (dict['name'], dict['age'], dict['qq'], dict['mail']))



def search_card():
 global stutent_list
 name = input('请输入查找学生的姓名:')
 for dict in stutent_list:
 if dict['name'] == name:
  table_head()
  print('-' * 32)
  print('| %s\t|\t%s\t|\t%s\t|\t%s\t|' % (dict['name'], dict['age'], dict['qq'], dict['mail']))
  print('您可以执行操作:1.删除\t2.修改\t3.返回上一级')
  deal_card(dict)
  break
 else:
 print('查无此人!!!')


def table_head():
 print('_' * 32)
 print('| 姓名\t|\t年龄\t|\tQQ\t|\t邮箱\t|')


def deal_card(dict):
 order = input('请输入命令:')
 while True:
 if order == '1':
  delete_card(dict)
  break
 elif order == '2':
  modify_card(dict)
  break
 elif order == '3':
  break
 else:
  print('输入有误,命令无效')

def delete_card(dict):
 print('执行命令,删除数据')
 stutent_list.remove(dict)
 print('...正在删除,请等待...')
 turnTime()
 print('删除成功,返回主界面')


def modify_card(dict):
 print('执行命令,修改数据')
 dict['name'] = input('请输入姓名:')
 dict['age'] = input('请输入年龄:')
 dict['qq'] = input('请输入QQ:')
 dict['mail'] = input('请输入邮箱:')
 print('...正在修改,请等待...')
 turnTime()
 print('修改成功,返回主界面')


def turnTime():
 for i in list(range(5, 0, -1)):
 print(i, 's')
 time.sleep(1)

以下部分为控制台效果截图:

python3学生名片管理v2.0版

2.查询

python3学生名片管理v2.0版

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python随机生成一个6位的验证码代码分享
Mar 24 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
Jan 11 Python
Python面向对象之接口、抽象类与多态详解
Aug 27 Python
Python GUI编程 文本弹窗的实例
Jun 11 Python
django框架面向对象ORM模型继承用法实例分析
Jul 29 Python
python3实现elasticsearch批量更新数据
Dec 03 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
Jan 14 Python
详解django中Template语言
Feb 22 Python
Python如何创建装饰器时保留函数元信息
Aug 07 Python
Python colormap库的安装和使用详情
Oct 06 Python
如何利用python生成MD5并去重
Dec 07 Python
Python获取字典中某个key的value
Apr 13 Python
python实现名片管理系统
Nov 29 #Python
Python中利用aiohttp制作异步爬虫及简单应用
Nov 29 #Python
Python中logging.NullHandler 的使用教程
Nov 29 #Python
Mac下Anaconda的安装和使用教程
Nov 29 #Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
Nov 29 #Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
Nov 29 #Python
pycharm debug功能实现跳到循环末尾的方法
Nov 29 #Python
You might like
NOD32 v2.70.32 简体中文封装版 提供下载了
2007/02/27 PHP
PHP面向对象分析设计的经验原则
2008/09/20 PHP
PHP 用数组降低程序的时间复杂度
2009/12/04 PHP
Php中使用Select 查询语句的实例
2014/02/19 PHP
win7计划任务定时执行PHP脚本设置图解
2014/05/09 PHP
学习php设计模式 php实现原型模式(prototype)
2015/12/07 PHP
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
Javascript 事件流和事件绑定
2009/07/16 Javascript
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
jquery实现奇偶行赋值不同css值
2012/02/17 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
JS获取时间的方法
2015/01/21 Javascript
jquery插件EasyUI中form表单提交实例分享
2016/01/11 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
JavaScript中两个字符串的匹配
2016/06/08 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
Ajax使用原生态JS验证用户名是否存在
2020/05/26 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
浅析vue数据绑定
2017/01/17 Javascript
vue使用Proxy实现双向绑定的方法示例
2019/03/20 Javascript
原生js实现文件上传、下载、封装等实例方法
2020/01/05 Javascript
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
python二分法实现实例
2013/11/21 Python
基于Python实现的扫雷游戏实例代码
2014/08/01 Python
Python使用装饰器进行django开发实例代码
2018/02/06 Python
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
python使用python-pptx删除ppt某页实例
2020/02/14 Python
Python 保存加载mat格式文件的示例代码
2020/08/04 Python
纯CSS3实现自定义Tooltip边框涂鸦风格的教程
2014/11/05 HTML / CSS
丝芙兰美国官网:SEPHORA美国
2016/08/03 全球购物
LVMH旗下最大的奢侈品网站平台:24S
2020/05/24 全球购物
《特殊的葬礼》教学反思
2014/04/27 职场文书
2014年会策划方案
2014/05/11 职场文书
摄影专业毕业生求职信
2014/08/05 职场文书
公司酒会主持词
2015/07/02 职场文书