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提取Linux内核源代码的目录结构实现方法
Jun 24 Python
Python 稀疏矩阵-sparse 存储和转换
May 27 Python
python数字图像处理之骨架提取与分水岭算法
Apr 27 Python
selenium+python实现1688网站验证码图片的截取功能
Aug 14 Python
python随机在一张图像上截取任意大小图片的方法
Jan 24 Python
python tkinter实现界面切换的示例代码
Jun 14 Python
如何用Python做一个微信机器人自动拉群
Jul 03 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
Aug 22 Python
Python的垃圾回收机制详解
Aug 28 Python
Django框架 信号调度原理解析
Sep 04 Python
Python中sys模块功能与用法实例详解
Feb 26 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
Mar 30 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
全国FM电台频率大全 - 7 吉林省
2020/03/11 无线电
在任意字符集下正常显示网页的方法一
2007/04/01 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
2015/10/21 PHP
PHP上传图片类显示缩略图功能
2016/06/30 PHP
ThinkPHP打水印及设置水印位置的方法
2016/10/14 PHP
jquery 常用操作方法
2010/01/28 Javascript
浅析JavaScript中的同名标识符优先级
2013/12/06 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
2014/01/10 Javascript
javascript 中__proto__和prototype详解
2014/11/25 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
jquery使用正则表达式验证email地址的方法
2015/01/22 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
2015/05/04 Javascript
JS实现带鼠标效果的头像及文章列表代码
2015/09/27 Javascript
直接拿来用的页面跳转进度条JS实现
2016/01/06 Javascript
jQuery实现的可编辑表格完整实例
2016/06/20 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
2018/05/22 Javascript
微信小程序学习笔记之获取位置信息操作图文详解
2019/03/29 Javascript
vue实现Input输入框模糊查询方法
2021/01/29 Javascript
antd table按表格里的日期去排序操作
2020/11/17 Javascript
[06:48]DOTA2-DPC中国联赛2月26日Recap集锦
2021/03/11 DOTA
python从ftp下载数据保存实例
2013/11/20 Python
python 七种邮件内容发送方法实例
2014/04/22 Python
Python写入CSV文件的方法
2015/07/08 Python
python实现多线程的方式及多条命令并发执行
2016/06/07 Python
Django框架多表查询实例分析
2018/07/04 Python
Python爬虫框架scrapy实现的文件下载功能示例
2018/08/04 Python
Django处理多用户类型的方法介绍
2019/05/18 Python
Django使用Channels实现WebSocket的方法
2019/07/28 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
浅谈keras保存模型中的save()和save_weights()区别
2020/05/21 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
2021/02/02 Python
《红军不怕远征难》教学反思
2014/04/14 职场文书
劳资协议书范本
2014/04/23 职场文书
作弊检讨书
2015/01/27 职场文书
2016五四青年节活动总结范文
2016/04/06 职场文书
详解Mysql 函数调用优化
2021/04/07 MySQL