学生管理系统[Python语言]

各位大佬好 ,这里是阿川的博客 , 祝您变得更强

个人主页:在线OJ的阿川
大佬的支持和鼓励,将是我成长路上最大的动力
阿川水平有限,如有错误,欢迎大佬指正

在这里插入图片描述

学生管理系统是计算机专业最基础的一个作业,能考验对基础知识的掌握.应该具有的功能有:1.新增学生2.显示学生3.查找学生4.删除学生.

储存在内存的数据容易丢失,当程序在运行时数据就会发生丢失,所以放到文件里面或者数据库里面会有效解决此问题.
接下来是具体的代码( 如有需要请自取,可改):

import sys
import os
list = []
# 存档
def save():with open("save.txt", "w", encoding="utf=8") as f: # 防止文件泄漏,加withfor s in list:f.write(f"{s['name']}\t{s['studentid']}\t{s["gender"]}\t{s["year"]}")print(f"共{len(list)}条信息")
# 读档
def load():if not os.path.exists("save.txt"):returnglobal listlist = []with open("save.txt", "r", encoding='utf8') as f: # "save.txt表示相对路径,若没有这个文件,系统会自动生成文件"for s in f:line = s.strip()split = line.split("\t")information = {"name": split[0],"studentid": split[1],"gender": split[2],"year": split[3],}list.append(information)print(f"共有{len(list)}条信息")
def main():print("------------------------------------")print("|        欢迎登入学生管理系统          |")print("------------------------------------")
def mune():print("------------------------------------")print("1.增加")print("2.删除")print("3.展示")print("4.查找")print("5.退出")inputs = input("请输入你要选择的数字:")return inputs
def add():name = input("请输入名字:")studentid = input("请输入学号:")gender = input("请输入性别:")year = input("请输入年龄:")if gender not in("男","女"):print("输入错误,请重新输入")returnstudent = {"name": name,"studentid": studentid,"gender": gender,"year": year,}list.append(student)save()print("输入成功!")
def erase():studentid = input("请输入你要删除的学生学号:")for s in list:if studentid == s["studentid"]:print(f"要删除的学生信息为:{s['name']}\t{s['studentid']}\t{s["gender"]}\t{s["year"]}")list.remove(s)save()print("删除成功!")returnprint("没有这个学生!")
def show():for s in list:print(f"{s['name']}\t{s['studentid']}\t{s["gender"]}\t{s["year"]}")print(f"数据共有{len(list)}条")
def find():name = input("请输入你要查找的学生名字:")for s in list:if name == s["name"]:print(f"{s['name']}\t{s['studentid']}\t{s["gender"]}\t{s["year"]}")returnprint("抱歉,没有这个学生")main()
load()
while True:digits = mune()if digits == "1":add()elif digits == "2":erase()elif digits == "3":show()elif digits == "4":find()elif digits == "5":print("再见,祝你生活愉快!")sys.exit(0)else:print("你的输入性别有误,请重新输入")continue

分享自己常用的一本书,这本书相当于Python界的菜谱,很经典的一本书叫做Python cookbook(若要电子版,请关注并私信我)。
再分享两个自己常用的 Python学习网站:
1.整理了Python的一些非常有意思的程序库
2.使用简短的Python代码实现有意思的程序
祝我们变得更强

道阻且长 行则将至
个人主页:在线OJ的阿川大佬的支持和鼓励,将是我成长路上最大的动力 在这里插入图片描述

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

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

相关文章

算法设计优化——起泡排序

文章目录 0.概述1 起泡排序(基础版)1.1 算法分析1.2 算法实现1.3 重复元素与稳定性1.4 复杂度分析 2 起泡排序(改进版)2.1 目标2.2 改进思路2.3 实现2.4 复杂度分析 3 起泡排序(改进版2)3.1 目标3.1 改进思…

edge 入门基础了解使用

随着Windows 11的发布,Microsoft Edge也迎来了新的更新和改进。作为一名长期使用Edge的用户,我不仅注意到了这些表面的变化,还深入研究了Edge在Windows 11上的新特性和潜在优势。 快捷方式 查找框 在Microsoft Edge浏览器中,按…

C语言——通讯录实现

一、介绍 本文只是对于结构体类型的练习。 只是简单的静态通讯录实现,没有具体的UI界面,只有一些简单的功能,同时也比较粗糙,有很多地方没有经过足够的打磨。 二、源码 本项目包含三个文件: test.c/cpp #include…

Typora中设置文字颜色

在Typora中设置文字颜色的三种方法如下: 方法一:使用内联公式 开启使用内联公式。依次点击“文件”→“偏好设置”(或使用快捷键Ctrl逗号),在弹出的窗口中选择“Markdown”,然后勾选“内联公式”&#xf…

基于docker-compose使用虚拟机搭建redis集群

代码实现 新建文件 docker-compose-redis.yml,复制以下代码 version: 2.2services:redis-node1:image: redis:5.0restart: alwayscommand: redis-server --port 7000 --cluster-enabled yes --cluster-config-file /data/nodes.conf --appendonly yesports:- &quo…

智能穿戴终端设备安卓主板方案_MTK平台智能手表PCBA定制开发

新移科技智能手表方案兼容WiFi、BLE、2~5G等多种通信能力。支持多个功能模块,包括:通话、计步、定位、睡眠监测、心率监测、血氧监测等。智能手表通过滑动与功能性按键提供高度直观的体验感受,从腕间即可掌控日常生活。形态支持定制包括&…

安全架构概述

安全架构是确保网络环境中的数据、系统和用户安全的关键组成部分,它涉及到多种技术和策略的综合应用。基本内容主要包括以下几个方面: 1. 访问控制与身份验证 :确保只有经过验证的用户或系统可以访问特定资源,常用技术包括多因素…

MySQL从入门到高级 --- 4.约束

文章目录 第四章:4.MySQL约束4.1 主键约束4.1.1 添加单列主键4.1.2 添加多列主键(联合主键)4.1.3 通过修改表结构添加主键4.1.4 删除主键约束4.1.5 自增长约束特点 4.1.6 指定自增字段初始值 - 创建表时指定4.1.7 指定自增字段初始值 - 创建表之后4.1.8 delete与tru…

如何配置 Prettier 配置文件,确保其中的文件 glob 模式能够正确包含 postcss.config.js 文件

如何配置 Prettier 配置文件,确保其中的文件 glob 模式能够正确包含 postcss.config.js 文件 要配置 Prettier 以确保其文件 glob 模式能够正确包含 postcss.config.js 文件,您可以按照以下步骤操作: 确认 Prettier 配置文件的存在&#xf…

商城数据库88张表结构(十五)

DDL 57.后台权限表 CREATE TABLE wang_privileges (privilegeId int(11) NOT NULL AUTO_INCREMENT COMMENT 自增ID,menuId int(11) NOT NULL COMMENT 父ID,privilegeCode varchar(20) NOT NULL COMMENT 权限代码,privilegeName varchar(30) NOT NULL COMMENT 权限名称,isMenu…

websocket全局封装使用

WebSocket对象的创建 WebSocket对象的关闭 启用心跳机制,避免断连 消息推送,接收到消息后进行业务逻辑处理 重连机制,如果断连后尝试一定次数的重连,超过最大次数后仍然失败则关闭连接 调用案例如下: const socketMana…

Vue笔记 4

内置指令 1.v-text_指令 我们学过的指令: ​ v-bind : 单向绑定解析表达式, 可简写为 :xxx ​ v-model : 双向数据绑定 ​ v-for : 遍历数组/对象/字符串 ​ v-on : 绑定事件监听, 可简写为 ​ v-if : 条件渲染(动态控制节点是否存存在&#xff0…

洞察未来:数据治理中的数据架构新思维

随着大数据时代的来临,数据已经成为企业运营和社会发展的重要资产。然而,数据的复杂性和快速增长给企业带来了前所未有的挑战。在这样的背景下,数据治理成为了企业不可或缺的一环。数据治理不仅涉及数据的管理、安全和隐私保护,更…

ubuntu部署sonar与windows下使用sonar-scanner

ubuntu部署sonar与windows下使用sonar-scanner sonar部署java安装mysql安装配置sonarqube 插件安装sonar-scanner使用简单使用 sonar部署 使用的是sonarqube-7.5&#xff0c;支持的java环境是jdk8&#xff0c;且MySQL版本 >5.6 && <8.0 java安装 打开终端&…

Jackson-自定义注解及实现数据脱敏、枚举转换

Hi,大家好&#xff0c;我是抢老婆酸奶的小肥仔。 上一章&#xff0c;我们介绍了下Jackson及相关的注解&#xff0c;其实我们可以通过仿照一些注解来实现自定义以满足我们自己的业务需求&#xff0c;这一章&#xff0c;我们来说说jackson提供的自定义注解及一些应用吧。 废话不…

Virtualbox7.0.10--创建虚拟机

前言 下载Virtualbox7.0.10&#xff0c;可参考《Virtualbox–下载指定版本》 Virtualbox7.0.10具体安装步骤&#xff0c;可参考《Virtualbox7.0.10的安装步骤》 Virtualbox7.0.10创建虚拟机&#xff0c;可参考《Virtualbox7.0.10–创建虚拟机》 Virtualbox7.0.10安装Ubuntu20.0…

H.265码流解析

这一篇内容旨在对H.265码流中的一些概念做简单了解,部分概念与H.264相同,本篇中将不再重复。 1、NALU H.265(HEVC)码流的NALU结构和AVC有一些不同,属于增强版,HEVC NALU结构如下: NALU Header: Forbidden_zero_bit:1位,必须为0,如果不是则表示NALU非法;Nal_unit_t…

后端如何处理接口的重复调用

首先是&#xff0c;原理在请求接口之前&#xff0c;使用过滤器拦截数据&#xff0c;来进行判断两次数据是否一致。 1.自定义注解 2.创建一个Handler处理器 3.RepeatSubmitInterceptor的实现类 4.过滤器的配置

大型企业总分支多区域数据传输,效率为先还是安全为先?

大型企业为了业务拓展需要&#xff0c;会在全国乃至全球各地设立分公司和办事机构&#xff0c;以便更好地处理当地事务&#xff0c;并进行市场的开拓和客户维护&#xff0c;此时&#xff0c;企业内部就衍生出了新的业务需求&#xff0c;即多区域数据传输。 多区域很难准确定义&…

云容器与云中间件

云容器与中间件是两种不同的技术和服务类别&#xff0c;它们分别在云计算环境中扮演着不同的角色&#xff0c;旨在帮助企业构建、部署、管理应用程序并确保其高效、可靠地运行。下面分别介绍两者的基本概念、包含的内容以及各自的用途。 容器 基本概念&#xff1a; 在腾讯云中…