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的ORM框架SQLObject入门实例
Apr 28 Python
Python读取图片为16进制表示简单代码
Jan 19 Python
python打包压缩、读取指定目录下的指定类型文件
Apr 12 Python
浅析python打包工具distutils、setuptools
Apr 20 Python
python pyinstaller 加载ui路径方法
Jun 10 Python
Python获取统计自己的qq群成员信息的方法
Nov 15 Python
python-xpath获取html文档的部分内容
Mar 06 Python
Python yield生成器和return对比代码实例
Apr 20 Python
python中绕过反爬虫的方法总结
Nov 25 Python
PyCharm 解决找不到新打开项目的窗口问题
Jan 15 Python
Keras多线程机制与flask多线程冲突的解决方案
May 28 Python
Python机器学习实战之k-近邻算法的实现
Nov 27 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
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
php daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
jquery 插件实现图片延迟加载效果代码
2010/02/06 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
文本框水印提示效果的简单实现代码
2014/02/22 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
JS实现简单的右下角弹出提示窗口完整实例
2016/06/21 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
基于jQuery实现的设置文本区域的光标位置
2018/06/15 jQuery
小程序视频或音频自定义可拖拽进度条的示例代码
2018/09/30 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
vue获取验证码倒计时组件
2019/08/26 Javascript
vue框架制作购物车小球动画效果实例代码
2019/09/26 Javascript
vuex存取值和映射函数使用说明
2020/07/24 Javascript
[02:53]DOTA2英雄昆卡基础教程
2013/11/25 DOTA
[45:56]Ti4正赛第一天 VG vs NEWBEE 3
2014/07/19 DOTA
从零学Python之入门(五)缩进和选择
2014/05/27 Python
Python中使用dom模块生成XML文件示例
2015/04/05 Python
请不要重复犯我在学习Python和Linux系统上的错误
2016/12/12 Python
python机器学习之神经网络(二)
2017/12/20 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
eclipse创建python项目步骤详解
2019/05/10 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
Python3安装pip工具的详细步骤
2019/10/14 Python
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
资产评估专业大学生求职信
2013/09/29 职场文书
学生自我鉴定
2013/12/18 职场文书
2016党校学习心得体会范文
2016/01/07 职场文书