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写入数据到MP3文件中的方法
Jul 10 Python
Python搜索引擎实现原理和方法
Nov 27 Python
用 Python 连接 MySQL 的几种方式详解
Apr 04 Python
Python 解决中文写入Excel时抛异常的问题
May 03 Python
在python中使用requests 模拟浏览器发送请求数据的方法
Dec 26 Python
django商品分类及商品数据建模实例详解
Jan 03 Python
Python递归及尾递归优化操作实例分析
Feb 01 Python
在Python中用GDAL实现矢量对栅格的切割实例
Mar 11 Python
python 多线程死锁问题的解决方案
Aug 25 Python
python Gabor滤波器讲解
Oct 26 Python
python爬虫线程池案例详解(梨视频短视频爬取)
Feb 20 Python
pytorch 中nn.Dropout的使用说明
May 20 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
索尼SONY ICF-7600A(W)电路分析
2021/03/01 无线电
PHP字符转义相关函数小结(php下的转义字符串)
2007/04/12 PHP
php实现图形显示Ip地址的代码及注释
2014/01/20 PHP
php表单提交与$_POST实例分析
2015/01/26 PHP
php opendir()列出目录下所有文件的实例代码
2016/10/02 PHP
HR vs CL BO3 第一场 2.13
2021/03/10 DOTA
ExtJS扩展 垂直tabLayout实现代码
2009/06/21 Javascript
基于JQuery的抓取博客园首页RSS的代码
2011/12/01 Javascript
如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
2013/07/09 Javascript
javascript常见用法总结
2014/05/22 Javascript
javascript匿名函数实例分析
2014/11/18 Javascript
js实现图片和链接文字同步切换特效的方法
2015/02/20 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
2015/04/28 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
jQuery导航条固定定位效果实例代码
2017/05/26 jQuery
微信小程序有旋转动画效果的音乐组件实例代码
2018/08/22 Javascript
JQuery常用简单动画操作方法回顾与总结
2019/12/07 jQuery
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
[06:23]2014DOTA2西雅图国际邀请赛 小组赛7月12日TOPPLAY
2014/07/12 DOTA
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
python实现朴素贝叶斯算法
2018/11/19 Python
python实现超市管理系统(后台管理)
2019/10/25 Python
selenium自动化测试入门实战
2020/12/21 Python
CSS3实现文字波浪线效果示例代码
2016/11/20 HTML / CSS
Cotton On美国网站:澳洲时装连锁品牌
2016/10/25 全球购物
酒吧创业计划书
2014/01/18 职场文书
真诚的求职信
2014/07/04 职场文书
远程培训的心得体会
2014/09/01 职场文书
就业协议书
2014/09/12 职场文书
群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
投标人法定代表人授权委托书格式
2014/09/28 职场文书
诗词赏析-(浣溪沙)
2019/08/13 职场文书
MySQL系列之二 多实例配置
2021/07/02 MySQL
Mysql 数据库中的 redo log 和 binlog 写入策略
2022/04/26 MySQL