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中的元组与逻辑运算符
Oct 13 Python
Ubuntu下安装PyV8
Mar 13 Python
PyQt5每天必学之日历控件QCalendarWidget
Apr 19 Python
浅析Python四种数据类型
Sep 26 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
Jun 04 Python
树莓派用python中的OpenCV输出USB摄像头画面
Jun 22 Python
python 搜索大文件的实例代码
Jul 08 Python
python使用sklearn实现决策树的方法示例
Sep 12 Python
Python lxml模块的基本使用方法分析
Dec 21 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
Feb 11 Python
OpenCV 之按位运算举例解析
Jun 19 Python
教你用python实现12306余票查询
Jun 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
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
2013/11/26 PHP
PHP中防止SQL注入方法详解
2014/12/25 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
2017/06/17 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
2017/06/20 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
JS完成代码前最好对其做5件事
2013/04/07 Javascript
js模仿jquery的写法示例代码
2013/06/16 Javascript
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
javascript:void(0)使用探讨
2013/08/27 Javascript
jquery动态改变onclick属性导致失效的问题解决方法
2013/12/04 Javascript
不使用jquery实现js打字效果示例分享
2014/01/19 Javascript
express的中间件bodyParser详解
2014/12/04 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
玩转JavaScript OOP - 类的实现详解
2016/06/08 Javascript
JS中微信小程序自定义底部弹出框
2016/12/22 Javascript
vue2的todolist入门小项目的详细解析
2017/05/11 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
Vue使用Proxy监听所有接口状态的方法实现
2019/06/07 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
基于VUE的v-charts的曲线显示功能
2019/10/01 Javascript
微信小程序实现滑动翻页效果(完整代码)
2019/12/06 Javascript
[06:07]DOTA2-DPC中国联赛3月5日Recap集锦
2021/03/11 DOTA
Python selenium 三种等待方式详解(必会)
2016/09/15 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
PyQt5每天必学之滑块控件QSlider
2018/04/20 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
Python上下文管理器全实例详解
2019/11/12 Python
德国团购网站:Groupon德国
2018/03/13 全球购物
Jones New York官网:美国女装品牌,受白领女性欢迎
2019/11/26 全球购物
介绍一下Java中的Class类
2015/04/10 面试题
护士辞职信范文
2014/01/19 职场文书
物理研修随笔感言
2014/02/14 职场文书
python实现批量移动文件
2021/04/05 Python
聊聊Python中关于a=[[]]*3的反思
2021/06/02 Python
Java 多线程协作作业之信号同步
2022/05/11 Java/Android