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爬虫框架Scrapy安装使用步骤
Apr 01 Python
python任务调度实例分析
May 19 Python
TensorFlow如何实现反向传播
Feb 06 Python
将python代码和注释分离的方法
Apr 21 Python
python删除文本中行数标签的方法
May 31 Python
在Python中pandas.DataFrame重置索引名称的实例
Nov 06 Python
selenium+python自动化测试之鼠标和键盘事件
Jan 23 Python
Python实现获取系统临时目录及临时文件的方法示例
Jun 26 Python
浅谈keras.callbacks设置模型保存策略
Jun 18 Python
如何验证python安装成功
Jul 06 Python
Python配置pip国内镜像源的实现
Aug 20 Python
python生成可执行exe控制Microsip自动填写号码并拨打功能
Jun 21 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中static关键字原理的学习研究分析
2011/07/18 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
2020/11/23 PHP
JavaScript实现复制功能各浏览器支持情况实测
2013/07/18 Javascript
改变状态栏文字的js代码
2014/06/13 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
2015/03/20 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
JS实现文字掉落效果的方法
2015/05/06 Javascript
详解Webwork中Action 调用的方法
2016/02/02 Javascript
JS验证逗号隔开可以是中文字母数字
2016/04/22 Javascript
fullpage.js全屏滚动插件使用实例
2016/09/06 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
很棒的vue弹窗组件
2017/05/24 Javascript
vue cli2.0单页面title修改方法
2018/06/07 Javascript
详解npm 配置项registry修改为淘宝镜像
2018/09/07 Javascript
如何提升vue.js中大型数据的性能
2019/06/21 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
2020/04/26 Javascript
js实现滑动进度条效果
2020/08/21 Javascript
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
《我不是最弱小的》教学反思
2014/02/23 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
群众路线自我剖析材料
2014/10/08 职场文书
购房委托书
2014/10/15 职场文书
2014年创先争优工作总结
2014/12/11 职场文书
爱情保证书
2015/01/17 职场文书
单位证明范文
2015/06/18 职场文书
酒店温馨提示语
2015/07/14 职场文书
唱歌比赛拉拉队口号
2015/12/25 职场文书
教你使用Pandas直接核算Excel中快递费用
2021/05/12 Python
react antd实现动态增减表单
2021/06/03 Javascript
Java框架入门之简单介绍SpringBoot框架
2021/06/18 Java/Android
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python