使用Python实现学生管理系统

文章目录

    • 1. 系统概述
    • 2. 系统功能
    • 3. 实现细节
      • 3.1 初始化学生列表
      • 3.2 添加学生
      • 3.3 显示所有学生
      • 3.4 查找学生
      • 3.5 删除学生
      • 3.6 主菜单
    • 4. 运行系统

在本文中,我们将使用Python编程语言来开发一个简单的学生管理系统。该系统将允许用户执行基本的学生信息管理操作,如添加学生、显示所有学生、查找学生和删除学生。

1. 系统概述

我们的学生管理系统将基于控制台应用,不使用图形用户界面(GUI)。系统将使用列表(list)来存储学生信息,每个学生信息将由一个字典(dict)表示,包含学生的姓名(name)、学号(id)和成绩(score)。

2. 系统功能

  • 添加学生(Add Student):允许用户输入新学生的姓名、学号和成绩,并将其添加到学生列表中。
  • 显示所有学生(Show All Students):显示学生列表中的所有学生信息。
  • 查找学生(Find Student):允许用户通过学号查找学生信息。
  • 删除学生(Delete Student):允许用户通过学号删除学生信息。

3. 实现细节

3.1 初始化学生列表

首先,我们需要一个空的学生列表来存储学生信息。

students = []

3.2 添加学生

我们将定义一个函数add_student来添加学生信息。

def add_student():name = input("请输入学生姓名: ")id = input("请输入学生学号: ")score = float(input("请输入学生成绩: "))student = {'name': name, 'id': id, 'score': score}students.append(student)print("学生信息已添加。")

3.3 显示所有学生

接下来,我们定义一个函数show_all_students来显示所有学生的信息。

def show_all_students():for student in students:print(f"姓名: {student['name']}, 学号: {student['id']}, 成绩: {student['score']}")print("所有学生信息已显示。")

3.4 查找学生

我们定义一个函数find_student,它允许用户通过学号来查找学生信息。

def find_student():id_to_find = input("请输入要查找的学号: ")for student in students:if student['id'] == id_to_find:print(f"姓名: {student['name']}, 学号: {student['id']}, 成绩: {student['score']}")returnprint("未找到该学生。")

3.5 删除学生

最后,我们定义一个函数delete_student,它允许用户通过学号来删除学生信息。

def delete_student():id_to_delete = input("请输入要删除的学生学号: ")for i in range(len(students) - 1, -1, -1):if students[i]['id'] == id_to_delete:del students[i]print("学生信息已删除。")returnprint("未找到该学生。")

3.6 主菜单

为了使用户能够方便地选择功能,我们还需要一个主菜单函数main_menu

def main_menu():while True:print("""学生管理系统1. 添加学生2. 显示所有学生3. 查找学生4. 删除学生5. 退出""")choice = input("请选择操作: ")if choice == '1':add_student()elif choice == '2':show_all_students()elif choice == '3':find_student()elif choice == '4':delete_student()elif choice == '5':print("谢谢使用,再见!")breakelse:print("无效选择,请重新输入。")if __name__ == "__main__":main_menu()

4. 运行系统

现在,你可以运行这个Python脚本,并根据提示进行操作。你可以添加一些学生信息,然后显示、查找或删除它们。

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

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

相关文章

嵌入式UI开发-lvgl+wsl2+vscode系列:5、事件(Events)

一、前言 这节进行事件的总结,通过事件回调方式将用户和ui的交互行为绑定组合起来。 二、事件示例 1、示例1(点击事件) #include "../lv_examples.h" #if LV_BUILD_EXAMPLES && LV_USE_SWITCHstatic void event_cb(lv_…

Chapter8 透明效果——Shader入门精要学习笔记

一、基本概念 在Unity中通常使用两种方法来实现透明效果 透明度测试(无法达到真正的半透明效果)透明度混合(关闭了深度写入) 透明度测试 基本原理:设置一个阈值,只要片元的透明度小于阈值,就…

全球AI新闻速递7.1

全球AI新闻速递 1.科大讯飞发布讯飞星火 V4.0。 2.成都人形机器人创新中心:基于视觉扩散架构的人形机器人任务生成式模型 R-DDPRM。 3.安徽省人形机器人产业创新中心获批,将打造国内首创、世界领先研究基地。 4.亳州牵手华为打造华佗中医药大模型。 …

[论文精读]Variational Graph Auto-Encoders

论文网址:[1611.07308] Variational Graph Auto-Encoders (arxiv.org) 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎…

DL/T 645与modbus协议是否兼容,有何关系?

不兼容。645是电表协议,modbus是通用控制协议,两个是平行关系,两个协议都可以使用485通信协议(物理接口协议)进行传输,或传输介质与物理接口相同,软件协议不同。 Modbus有以下三种通信模式 在…

ARM功耗管理软件之时钟电源树

安全之安全(security)博客目录导读 思考:功耗管理软件栈及示例?WFI&WFE?时钟&电源树?DVFS&AVS? 目录 一、时钟&电源树简介 二、时钟树示例 三、电源树示例 一、时钟&电源树简介 时钟门控与自…

人工智能与机器学习原理精解【1】

文章目录 Rosenblatt感知器基础收敛算法算法概述算法步骤关键点说明总结 C实现要点代码 参考文献 Rosenblatt感知器 基础 感知器,也可翻译为感知机,是一种人工神经网络。它可以被视为一种最简单形式的前馈式人工神经网络,是一种二元线性分类…

【技术路线选择】:Qt or macOS/iOS ?

【技术路线选择】:Qt or macOS/iOS ? 【Question 1】: I have more than two years of experience developing with the following skills: Qt C and macOS/iOS development. Im interested in pursuing a software engineering career and would …

Victor CMS v1.0 SQL 注入漏洞(CVE-2022-28060)

前言 CVE-2022-28060 是 Victor CMS v1.0 中的一个SQL注入漏洞。该漏洞存在于 /includes/login.php 文件中的 user_name 参数。攻击者可以通过发送特制的 SQL 语句,利用这个漏洞执行未授权的数据库操作,从而访问或修改数据库中的敏感信息。 漏洞详细信…

论文阅读_优化RAG系统的检索

英文名称: The Power of Noise: Redefining Retrieval for RAG Systems 中文名称: 噪声的力量:重新定义RAG系统的检索 链接: https://arxiv.org/pdf/2401.14887.pdf 作者: Florin Cuconasu, Giovanni Trappolini, Federico Siciliano, Simone Filice, Cesare Campag…

半导体中名词“wafer”“chip”“die”中文名字和用途

①wafer——晶圆 wafer 即为图片所示的晶圆,由纯硅(Si)构成。一般分为6英寸、8英寸、12英寸规格不等,晶片就是基于这个wafer上生产出来的。晶圆是指硅半导体集成电路制作所用的硅晶片,由于其形状为圆形,故称为晶圆;在硅晶片上可加…

App测试技术(纯理论)

之前我们也学习过一些普通用例的设计, 如功能, 性能, 安全性, 兼容性, 易用性, 界面的测试用例设计, 之前我们讲的基本都是对于Web应用而言的, 这里我们来讲一下移动端的App测试用例设计. 功能方面 安装&卸载测试 这是只属于App的一类测试, 再平常我们使用移动设备(手机…

php 命令行模式详解

PHP 的命令行模式(Command Line Interface, CLI)是 PHP 的一个特定版本或运行时配置,它允许 PHP 脚本在没有 Web 服务器的情况下直接在命令行环境中执行。CLI 版本的 PHP 通常不包含 CGI 或者其他 web server 接口,因此更轻量级&a…

Redis的使用(一)概述

1.绪论 redis是一款用c编写的kv数据库,它具有丰富的数据类型,并且执行原子操作,自带数持久化,并且实现了集群部署等功能,我们来看看它有哪些特点: 1.提供了丰富的数据结构,比如string,list&am…

【第11章】MyBatis-Plus条件构造器(上)

文章目录 前言一、功能详解1. allEq2. eq3. ne4. gt5. ge6. lt7. le8. between9. notBetween10. like11. notLike12. likeLeft13. likeRight14. notLikeLeft15. notLikeRight16. isNull17. in18. notIn19. inSql20. notInSql21. eqSqlSince 3.5.622. gtSql Since 3.4.3.223. ge…

Linux4(Docker)

目录 一、Docker介绍 二、Docker结构 三、Docker安装 四、Docker 镜像 五、Docker 容器 六、Docker 安装nginx 七、Docker 中的MySQL部署 一、Docker介绍 Docker:是给予Go语言实现的开源项目。 Docker的主要目标是“Build,Ship and Run Any App,Anywhere” 也…

jenkins配置git

参考: 容器化部署 Jenkins,并配置SSH远程操作服务器_jenkins ssh-CSDN博客

类和对象【上】【C++】

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。 博主主页:LiUEEEEE                        …

依托天拓四方工业智能网关实现CNC数控机床的远程运维

随着工业4.0时代的到来,智能制造和工业互联网成为了推动制造业转型升级的重要力量。CNC数控机床作为制造业的核心设备,其运行效率与稳定性直接关系到企业的生产效益。因此,实现CNC数控机床的远程运维,对于提升企业竞争力、降低运营…