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下载Bing图片(代码)
Nov 07 Python
Python使用新浪微博API发送微博的例子
Apr 10 Python
Python程序员鲜为人知但你应该知道的17个问题
Jun 04 Python
Python减少循环层次和缩进的技巧分析
Mar 15 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
Sep 19 Python
Python实现输出程序执行进度百分比的方法
Sep 16 Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
Nov 24 Python
Python使用matplotlib绘制三维图形示例
Aug 25 Python
Python目录和文件处理总结详解
Sep 02 Python
python操作yaml说明
Apr 08 Python
Python文件时间操作步骤代码详解
Apr 13 Python
matplotlib绘制鼠标的十字光标的实现(自定义方式,官方实例)
Jan 10 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
Apache2 httpd.conf 中文版
2006/12/06 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
PHP可变变量学习小结
2015/11/29 PHP
js tab效果的实现代码
2009/12/26 Javascript
multiSteps 基于Jquery的多步骤滑动切换插件
2011/07/22 Javascript
jQuery方法简洁实现隔行换色及toggleClass的使用
2013/03/15 Javascript
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
多个jquery.datatable共存,checkbox全选异常的快速解决方法
2013/12/10 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
2014/06/20 Javascript
详解JavaScript中数组的相关知识
2015/07/29 Javascript
JavaScript中三种异步上传文件方式
2016/03/06 Javascript
js replace()去除代码中空格的实例
2017/02/14 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
基于axios封装fetch方法及调用实例
2018/02/05 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
vue3为什么要用proxy替代defineProperty
2020/10/19 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
python 重命名轴索引的方法
2018/11/10 Python
利用ctypes获取numpy数组的指针方法
2019/02/12 Python
你应该知道的Python3.6、3.7、3.8新特性小结
2020/05/12 Python
学python需要去培训机构吗
2020/07/01 Python
在keras中对单一输入图像进行预测并返回预测结果操作
2020/07/09 Python
浅析Python 序列化与反序列化
2020/08/05 Python
FC-Moto瑞典:欧洲最大的摩托车服装和头盔商店之一
2018/11/27 全球购物
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
社区工作者感言
2014/03/02 职场文书
公务员群众路线专题民主生活会发言材料
2014/09/17 职场文书
购房协议书范本
2014/10/02 职场文书
单位工作证明格式模板
2014/10/04 职场文书
出生公证书
2015/01/23 职场文书
2015世界地球日活动总结
2015/02/09 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书
react中的DOM操作实现
2021/06/30 Javascript