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创建日历实例
Aug 21 Python
Python数据操作方法封装类实例
Jun 23 Python
Python标准模块--ContextManager上下文管理器的具体用法
Nov 27 Python
Python cookbook(数据结构与算法)字典相关计算问题示例
Feb 18 Python
Python中按值来获取指定的键
Mar 04 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
Mar 22 Python
python 中xpath爬虫实例详解
Aug 26 Python
TensorFlow tf.nn.conv2d实现卷积的方式
Jan 03 Python
python如何将两张图片生成为全景图片
Mar 05 Python
Python xlwt模块使用代码实例
Jun 10 Python
浅谈TensorFlow之稀疏张量表示
Jun 30 Python
python tqdm库的使用
Nov 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
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
2012/01/16 PHP
PHP 函数call_user_func和call_user_func_array用法详解
2014/03/02 PHP
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
php中JSON的使用方法
2015/04/30 PHP
javascript获取选中的文本的方法代码
2013/10/30 Javascript
Javascript实现返回上一页面并刷新的小例子
2013/12/11 Javascript
JavaScript表单通过正则表达式验证电话号码
2014/03/14 Javascript
jquery图片切换插件
2015/03/16 Javascript
在DWR中实现直接获取一个JAVA类的返回值的两种方法
2016/12/25 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
js实现分页功能
2017/05/24 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
Vue的Flux框架之Vuex状态管理器
2017/07/30 Javascript
JS实现页面内跳转的简单代码
2017/09/03 Javascript
Vue组件开发技巧总结
2018/03/04 Javascript
angularjs1.5 组件内用函数向外传值的实例
2018/09/30 Javascript
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
微信小程序云开发之数据库操作
2019/05/18 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
小程序实现tab标签页
2020/11/16 Javascript
利用Python爬虫给孩子起个好名字
2017/02/14 Python
Python的高阶函数用法实例分析
2019/04/11 Python
tensorflow模型继续训练 fineturn实例
2020/01/21 Python
PyQT5 实现快捷键复制表格数据的方法示例
2020/06/19 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
西班牙多品牌鞋店连锁店:Krack
2018/11/30 全球购物
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
优秀员工自荐信范文
2013/10/05 职场文书
公司周年庆典策划方案
2014/05/17 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
员工年终考核评语
2014/12/31 职场文书
仓库管理制度范本
2015/08/04 职场文书
详解Python 3.10 中的新功能和变化
2021/04/28 Python
原生Js 实现的简单无缝滚动轮播图的示例代码
2021/05/10 Javascript
python+opencv实现视频抽帧示例代码
2021/06/11 Python