python实训名片管理程序_python3学生名片管理v2.0版

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)

以下部分为控制台效果截图:

2.查询

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/505014.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ssm 项目cannot resolve package_前端工程化之创建项目

前言在我们团队,刚开始创建项目,是直接使用框架的 cli 进行创建项目,并修改相关配置。随着项目的增多,沉淀了两套模板,平台端及移动端。后来,我们自己写了一个简单的 cli,并提供了 create 及 li…

android_secure写权限,android.permission.WRITE_SECURE_SETTINGS权限报错

在做Android的GPS这一块时,根据原生代码写的Widget,运行时总是会报错说需要android.permission.WRITE_SECURE_SETTINGS权限,于是便在Manifest.xml中添加该权限,但是保存时会报错提示该权限仅用于系统的app查看了很多资料都说需要将…

解析mysqlbinlog日志_mysqlbinlog日志分析 日志挖掘 违规操作

案例:客户数据库,某关键配置表被修改,需查找操作记录及和操作时间1:mysqlbinlog读取如果binlog formatstatement 可以直接通过mysqlbinlog查看如果binlog formatrow 需要添加 -vv --base64-outputdecode-rows/usr/local/mysql/bi…

python打印长方形_利用python打印出菱形、三角形以及矩形的方法实例

前言 本文主要给大家介绍了关于利用python打印出菱形、三角形以及矩形的相关内容,分享出来供大家参考学习,话不多说,来一起看看详细的介绍: 实例代码 #coding:utf-8 rows int(raw_input(输入列数: )) i j k 1 #声明…

百度seo排名规则_百度关键词seo优化排名如何上首页

无涯孤客百度关键词seo优化排名快速上首页,是通过使用多种百度算法优化,让网站在搜索引擎上排名更好,我们做百度关键词排名的话,要比市面上绝大公司做的要稳定,也希望各位可以相信我们,我们可以将百度关键词…

数学难题html5小游戏答案,小学数学难题讲解及答案

第一讲速算与巧算例1 计算9+99+999+9999+99999解:在涉及所有数字都是9的计算中,常使用凑整法.例如将999化成1000—1去计算.这是小学数学中常用的一种技巧.9+99+999+9999&…

华为做raid5步骤_华为RH2288V5服务器做RAID 0(官方推荐做法)

华为RH2288V5服务器采用的Avago SAS3408阵列卡,RAID做法跟RH2285 RH1285不一样,今天薇晓兰就带各位了解下如何给RH2288V5服务器做RAID!由于Avago SAS3408不支持Legacy配置,支持UEFI配置;支持Legacy和UEFI启动。所以开机…

distinct过滤掉重复记录并且显示所有字段_MySQL的所有姿势,我都帮你准备好了...

mysql登录远程登录方式本地登陆方式mysql:mysql -h 主机名 -P 端口号 -u 用户名 -p密码 mysql:mysql -uroot -p密码数据库操作命令创建数据库、删除数据库、展示所有数据库名。查看当前数据库名、查看所有表、查看其他数据库的表。查看数据库的版本、表结…

HTML5海报生成器源码,原生js小项目 - canvas海报生成器

1.背景之前做过一个营销类移动端h5项目-海报生成器,上传用户本地图片合成海报并支持下载,这次有时间了整理整理。2.几个重点上传本地图片并支持预览处理ios照片翻转使用canvas对图片等比拉伸缩放并居中裁剪使用canvas绘制图片以及文本输出base64并支持下…

pyqt5窗口之间传递信号_pyQT5 实现窗体之间传值的示例

准备一个MainWindow和一个WidgetForm,总代码如下# -*- coding: utf-8 -*-from PyQt5 import QtWidgetsfrom main_windows import Ui_MainWindowimport sysfrom wid_defs import my_widgetsfrom dlg_defs import my_Dialogclass MyWindow(QtWidgets.QMainWindow,Ui_M…

matlab length_MATLAB入门

一、操作界面1.功能区 2.当前文件夹 3.命令窗口4.工作区 5.程序编辑窗口 6.脚本文件(1)当前文件夹是MATLAB读取和存储文件的默认文件夹。 (2)当前文件夹可以修改或新建命令行窗口:用于输入命令(或语句&…

html微信支付功能代码,js微信支付实现代码

微信支付//调用微信JS api 支付function jsApiCall(){WeixinJSBridge.invoke("getBrandWCPayRequest",{$parms},//下面是支付完成后的回调,可以直接提示成功function(res) {if(res.err_msg "get_brand_wcpay_request:ok") {location.href &qu…

python控制语句第一章_python基础第一章

Python基础第一个python程序变量程序交互基本数据类型格式化输出基本运算符流程控制if...else...流程控制-循环第一个python程序文件执行1.用notepad创建一个文件,输入以下代码:print(HelloWorld)print(python好简单啊,我要学好挣大钱&#x…

docker 端口映射 udp_Docker 制作一键安装的本地无污染 DNS 域名服务

国庆休假回来,感觉和整个世界失联了,各种不通,不得不就自己本地的应用环境进一步的升级:搭建一个本地版本的无污染 DNS 域名服务。各种网络文章扫了一遍,推荐以下这篇文章:CoreDNS搭建无污染DNS指导思想基本…

jquery 验证小数点后几位_(亲测可用)input只能输入数字或小数点后几位

webapp是基于html5网页版的app,经常会结合app成为混合模式 hybrid app,也就是 app小应用打开 访问的其实是网页,这种方式非常不错,解决了app更新的难题, 所以这个时候要求 webapp需要做的非常像原生app一样。下面是切图…

快能通小学生计算机的游戏,亲子小游戏,帮助孩子更快学会交通安全知识

随着我国机动化进程加快和小汽车进入千家万户,如何安全乘坐机动车,如何在上放学途中保障儿童青少年的交通安全,成为儿童青少年交通安全保护的重要内容。下面小编介绍几个亲子小游戏,帮助孩子更快学会交通安全知识。认识交通标志游…

es 怎么嵌入 算法模型_快速ES-RNN: ES-RNN算法的GPU实现

快速ES-RNN: ES-RNN算法的GPU实现题目:Fast ES-RNN: A GPU Implementation of the ES-RNN Algorithm作者:Andrew Redd, Kaung Khin, Aldo Marini来源:Machine Learning (cs.LG)Submitted on 7 Jul 2019文档链接:arXiv:1907.03329代…

latex 三线表_LaTeX学习记录(3):使用图表

学习记录(3):使用图表每次跟朋友安利 的时候我都会讲这么一个故事:❝当时设计天琴一号加速度计的控制器参数,出于数字控制参数切换的便利性,疯狂设计了十几套参数。然而写报告的时候傻了:老板要求每套参数六个自由度的…

计算机终端网络准入控制要求,计算机网络终端准入控制技术资料.pdf

201 计算机系统应用1年第20卷第l期http://www.c-Sa.org.cn计算机网络终端准入控制技术①周超,周城,丁晨路(重庆通信学院研究生管理大队,重庆400035)摘要:终端…

kubernetes怎么读_每个 Kubernetes 应聘者应该知道的 5 个面试题 | Linux 中国

如果你是要面试 Kubernetes 相关职位的应聘者,这里给出了要提问的问题以及这些问题的重要性。-- Jessica Repka面试对面试官及候选人来说都很不容易。最近,我发现面试 Kubernetes 相关工作的候选人似乎尤其困难。为什么呢?一方面,…