Python入门练习 - 学生管理系统

news/2024/4/27 17:14:01/文章来源:https://blog.csdn.net/qq_59599094/article/details/137083595

Python 实现读书管理系统

在这里插入图片描述

"""
实现一个命令行版的读书管理系统
"""
import os.path
import sys# 使用这个全局变量,来管理所有的学生信息
# 这个列表的每个元素都是一个‘字典’,每 个 字典就分别表示了一个同学students = []def save():"""用于存档,将内存保存到文件中:return:"""# 在同一个目录中创建资源文件用于存档信息with open('./resource.txt', 'w', encoding='utf8') as file:for stu in students:file.write(f"{stu['studentId']}\t{stu['name']}\t{stu['gender']}\t{stu['className']}\n")print(f"[存档成功] 共储存了{len(students)}条记录!")def load():"""用于读档:return:"""# 如果存档文件不存在,则直接跳过读档流程if not os.path.exists('./resource.txt'):return# 读档之前要把旧的数据清干净global studentsstudents = []with open('./resource.txt', 'r', encoding='utf8') as file:for line in file:line = line.strip()splitList = line.split('\t')if len(splitList) != 4:print(f'当前格式存在问题, line={line}')continuestudent = {'studentId': splitList[0],'name': splitList[1],'gender': splitList[2],'className': splitList[3]}students.append(student)print(f"[读档成功] 共读取了{len(students)} 条记录")def menu():print('-----------------------------------------')print('       1.新增学生                         ')print('       2.显示学生                         ')print('       3.查找学生                         ')print('       4.删除学生                         ')print('       0.退出程序                         ')print('-----------------------------------------')choice = input(' 请输入您的选择:')return choicedef insert():print('[新增学生]开始!')studentId = int(input('请输入学生学号:'))name = input('请输入学生的姓名:')gender = input('请输入学生的性别:')if gender not in ['男', '女']:print('性别输入内容不符合要求')returnclassName = input('请输入学生班级')# 使用 一 个 字典将学生信息给聚合起来student = {'studentId': studentId,'name': name,'gender': gender,'className': className}global studentsstudents.append(student)# 增加保存操作save()print('[新增学生]完毕!')def display():print('[显示学生] 开始!')for stu in students:print(f"{stu['studentId']}\t{stu['name']}\t{stu['gender']}\t{stu['className']}")print(f'[显示学生] 完毕,共显示了{len(students)}条记录')def find():# 根据学生姓名来查找print('[查找学生] 开始!')name = input('请输入要查找的学生姓名')count = 0global studentsfor stu in students:if stu['name'] == name:print(f"{stu['studentId']}\t{stu['name']}\t{stu['gender']}\t{stu['className']}")count += 1print(f'[查找学生] 完毕, 共匹配到{count}条记录')def delete():print('[删除学生] 开始')studentId = input('请输入要删除学生的学号:')global studentsfor stu in students:if stu['studentId'] == studentId:print(f"删除{stu['name']} 同学的信息!")students.remove(stu)save()print('[删除学生] 结束')def main():"""入口函数:return:"""print('--------------------------------------------')print('            欢迎来到学生管理系统'                )print('--------------------------------------------')load()while True:chioce = menu()if chioce == '1':insert()elif chioce == '2':display()elif chioce == '3':find()elif chioce == '4':delete()elif chioce == '0':print('goodbye!')sys.exit(0)else:print('输入有误,请重新输入')main()

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

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

相关文章

argocd cli工具使用

一、前言 ragocd除了使用web界面操作之外,也可以通过argocd cli工具进行操作,关于集群创建、gitlab仓库创建、app创建都是可以通过yaml 文件去操作,使用web界面创建的操作也需要使用argocd cli工具进行备份 二、使用 在argocd部署的章节已经…

阿里云4核16G服务器优惠价格26元1个月、149元半年

阿里云4核16G服务器优惠价格26.52元1个月、79.56元3个月、149.00元半年。2024年腾讯云服务器优惠价格表,一张表整理阿里云服务器最新报价,阿里云服务器网整理云服务器ECS和轻量应用服务器详细CPU内存、公网带宽和系统盘详细配置报价单,大家也…

MySQL数据库高级语句

文章目录 MySQL高级语句older by 排序区间判断查询或与且(or 与and)嵌套查询(多条件)查询不重复记录distinctcount 计数限制结果条目limit别名as常用通配符嵌套查询(子查询)同表不同表嵌套查询还能用于删除…

Python基础教程:基本数据类型

基本数据类型 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组) 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合) Numbers(数字) 数字数据类型用于存储数值。 他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对…

【正点原子FreeRTOS学习笔记】————(12)信号量

这里写目录标题 一、信号量的简介(了解)二、二值信号量(熟悉)三、二值信号量实验(掌握)四、计数型信号量(熟悉)五、计数型信号量实验(掌握)六、优先级翻转简介…

腾讯云GPU云服务器_GPU云计算_异构计算_弹性计算

腾讯云GPU服务器是提供GPU算力的弹性计算服务,腾讯云GPU服务器具有超强的并行计算能力,可用于深度学习训练、科学计算、图形图像处理、视频编解码等场景,腾讯云百科txybk.com整理腾讯云GPU服务器租用价格表、GPU实例优势、GPU解决方案、GPU软…

LinkedIn 互联网架构扩展简史

LinkedIn成立于 2003 年,其目标是连接到您的网络以获得更好的工作机会。第一周只有 2,700 名会员。时间快进了很多年,LinkedIn 的产品组合、会员基础和服务器负载都取得了巨大的增长。 如今,LinkedIn 在全球运营,拥有超过 3.5 亿会…

R使用netmeta程序包实现生存数据的频率学网状meta分析

之前的推文系统的介绍了使用netmeta包实现对二分类变量、连续型变量和罕见事件的网状meta分析。今天的文章介绍如何使用netmeta程序包实现生存数据的频率学网状meta分析,用来评估6种免疫疗法( Camrelizumab、Tislelzumab、Toripalimab、Sintilimab、Pemb…

(二)windows配置JDK环境

1、安装包下载地址,官网:Java Archive | Oracle 长期稳定支持版本8、11、17、21 选择一个需要下载的连接点进去: 在下载列表中根据操作系统选择不同的下载包: 注意:部分版本下载需要先登录后才可以下载。 安装包附件…

Canal解决Redis缓存与Mysql数据库的一致性问题

1、什么是Canal? 如何解决Redis缓存与Mysql数据库的一致性问题?我们常用数据双删缓存超时设置去解决。这样最差的情况,就是在超时时间内,数据存在不一致。 canal,译为管道,主要用途是基于 MySQL 数据库增…

(1) 易经与命运_学习笔记

个人笔记,斟酌阅读 占卦的原理 三个铜板,正面是3,反面2,三个一起转,得出6,7,8,9 数字象6老阴7少阳8少阴9老阳 生数和成数 生数和成数应该说出自《河图》。其中一二三四五为生数,六七八九十为成数。 生…

基于k6和python进行自动化性能测试

摘要:在性能测试中,达到相应的性能指标对于一个软件来说十分重要,在本文中,将介绍一种现代化性能测试工具k6。 import http from k6/http; import { sleep } from k6; export default function () { http.get(https://test-api…

正式发布:VitePress 1.0 现代化静态站点生成器!

大家好,我是奇兵,今天介绍一下现代化静态站点生成器!,希望能帮到大家。 3 月 21 日, 由 Vue 团队出品的现代化静态站点生成器 VitePress 正式发布 1.0 版本!它专为构建快速、以内容为中心的网站而生,能够轻…

动态多态的注意事项

大家好: 衷心希望各位点赞。 您的问题请留在评论区,我会及时回答。 多态的基本概念 多态是C面向对象三大特性之一(多态、继承、封装) 多态分为两类: 静态多态:函数重载和运算符重载属于静态多态&#x…

C语言从入门到实战----C语言中内存函数的使用和模拟实现

目录 前言 1.memcpy 使用和模拟实现 2. memmove 使用和模拟实现 3. memset 函数的使用 4. memcmp 函数的使用 前言 在编程领域,内存管理是至关重要的一环,它确保了程序能够高效、稳定地运行。 C语言作为一门底层的编程语言,提供了一系…

【3D目标检测】Det3d—SE-SSD模型训练(前篇):KITTI数据集训练

SE-SSD模型训练 1 基于Det3d搭建SE-SSD环境2 自定义数据准备2.1 自定义数据集标注2.2 训练数据生成2.3 数据集分割 3 训练KITTI数据集3.1 数据准备3.2 配置修改3.3 模型训练 1 基于Det3d搭建SE-SSD环境 Det3D环境搭建参考:【3D目标检测】环境搭建(OpenP…

Linux非root用户安装mysql5.7

1、下载安装包MySQL :: Download MySQL Community Server 点击Archives 我下载的是5.7.27版本,linux主机直接选择linux-Generic即可,选择第一个包下载即可 2、安装mysql 解压 shell> tar xzvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz shell&g…

基于深度学习YOLOv8+PyQt5的水底海底垃圾生物探测器检测识别系统(源码+数据集+配置说明)

wx供重浩:创享日记 对话框发送:323海底 获取完整源码7000张数据集配置说明文件说明远程操作配置环境跑通程序 效果展示 基于深度学习YOLOv8PyQt5的水底海底垃圾生物探测器检测识别系统设计(源码数据集配置文件) 各文件说明 程序运…

申请免费域名证书

目录 背景: 域名证书是什么: 域名证书有哪些: 部署域名证书有什么用: 免费的域名证书在哪里申请: 背景: 域名是一个IP地址上的“面具” 。一个域名的目的是便于记忆和沟通的一组服务器的地址(网站&…

分页功能制作

使用HTML,css,js和json假数据制作分页功能。 以下为分页功能结构,下面可以点击上一页,下一页及数字,还可以自己输入想要跳转的页面点击跳转。下面每页显示的内容也会跟着改变。还可以选择不同的每页显示数据的条数。默…