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写的一个简单DNS服务器实例
Jun 04 Python
用python删除java文件头上版权信息的方法
Jul 31 Python
Python3.2中的字符串函数学习总结
Apr 23 Python
python执行等待程序直到第二天零点的方法
Apr 23 Python
Django中几种重定向方法
Apr 28 Python
Python Queue模块详细介绍及实例
Dec 27 Python
用python结合jieba和wordcloud实现词云效果
Sep 05 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
Jul 13 Python
Python GUI库PyQt5图形和特效样式QSS介绍
Feb 25 Python
python3.6使用SMTP协议发送邮件
May 20 Python
超级详细实用的pycharm常用快捷键
May 12 Python
Python+tkinter实现高清图片保存
Mar 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
Protoss魔法科技
2020/03/14 星际争霸
织梦模板标记简介
2007/03/11 PHP
php unset全局变量运用问题的深入解析
2013/06/17 PHP
深入理解PHP变量的值类型和引用类型
2015/10/21 PHP
php实现当前页面点击下载文件的简单方法
2016/09/22 PHP
PHP+mysql实现从数据库获取下拉树功能示例
2017/01/06 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
2017/11/06 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点
2012/01/15 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
js+jquery实现图片裁剪功能
2015/01/02 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
2015/03/03 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
JQuery EasyUI的使用
2016/02/24 Javascript
iscroll碰到Select无法选择下拉刷新的解决办法
2016/05/21 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
微信小程序网络请求wx.request详解及实例
2017/05/18 Javascript
jQuery常用选择器详解
2017/07/17 jQuery
Vue 滚动行为的具体使用方法
2017/09/13 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
详解webpack的proxyTable无效的解决方案
2018/06/15 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
vue.js 输入框输入值自动过滤特殊字符替换中问标点操作
2020/08/31 Javascript
Python设计模式之代理模式简单示例
2018/01/09 Python
python3 拼接字符串的7种方法
2018/09/12 Python
解析Python的缩进规则的使用
2019/01/16 Python
python协程之动态添加任务的方法
2019/02/19 Python
python中正则表达式与模式匹配
2019/05/07 Python
Python random库使用方法及异常处理方案
2020/03/02 Python
在Python IDLE 下调用anaconda中的库教程
2020/03/09 Python
Django高并发负载均衡实现原理详解
2020/04/04 Python
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
我的applet原先好好的, 一放到web server就会有问题,为什么?
2016/05/10 面试题
《春到梅花山》教学反思
2014/04/16 职场文书
Python中文分词库jieba(结巴分词)详细使用介绍
2022/04/07 Python