当前位置: 首页 > news >正文

学生管理系统(Python版本)

class Student:def __init__(self, id, name, age):self.id = idself.name = nameself.age = ageclass StudentManagementSystem:def __init__(self):self.students = []def add_student(self, student):self.students.append(student)print("学生信息添加成功!")def display_students(self):print("学生信息列表:")for student in self.students:print(f"ID: {student.id}, 姓名: {student.name}, 年龄: {student.age}")def find_student_by_id(self, id):for student in self.students:if student.id == id:return studentreturn Nonedef update_student(self):id = int(input("请输入要修改信息的学生ID:"))student = self.find_student_by_id(id)if student is None:print("找不到该学生信息。")returnstudent.name = input("请输入新的学生姓名:")student.age = int(input("请输入新的学生年龄:"))print("学生信息修改成功!")def delete_student(self):id = int(input("请输入要删除的学生ID:"))student = self.find_student_by_id(id)if student is None:print("找不到该学生信息。")returnself.students.remove(student)print("学生信息删除成功!")def main():sms = StudentManagementSystem()while True:print("\n学生管理系统")print("1. 添加学生信息")print("2. 显示学生信息")print("3. 修改学生信息")print("4. 删除学生信息")print("5. 退出")choice = int(input("请选择操作:"))if choice == 1:id = int(input("请输入学生ID:"))name = input("请输入学生姓名:")age = int(input("请输入学生年龄:"))new_student = Student(id, name, age)sms.add_student(new_student)elif choice == 2:sms.display_students()elif choice == 3:sms.update_student()elif choice == 4:sms.delete_student()elif choice == 5:print("退出程序。")breakelse:print("无效的选择,请重新输入。")if __name__ == "__main__":main()

Student 类:这是一个学生类,用于创建学生对象。它有三个属性:id、name 和 age。

StudentManagementSystem 类:这是管理学生信息的类。它包含了一个学生列表 students,并提供了添加、显示、修改和删除学生信息的方法。

main() 函数:这是程序的入口函数。在这里,我们创建一个 StudentManagementSystem 对象,并根据用户的选择执行相应的操作。

通过用户输入来获取学生的信息,并使用相应的方法来处理。根据用户的选择,程序会执行添加、显示、修改和删除学生信息等操作。

这个 Python 学生管理系统示例相较于之前的 C 代码更为简洁,体现了 Python 的优雅和易用性。它使用了类来组织数据和功能,使代码更加模块化和可读性更高。

相关文章:

学生管理系统(Python版本)

class Student:def __init__(self, id, name, age):self.id idself.name nameself.age ageclass StudentManagementSystem:def __init__(self):self.students []def add_student(self, student):self.students.append(student)print("学生信息添加成功!&qu…...

Linux下快速创建大文件的4种方法总结

1、使用 dd 命令创建大文件 dd 命令用于复制和转换文件,它最常见的用途是创建实时 Linux USB。dd 命令是实际写入硬盘,文件产生的速度取决于硬盘的读写速度,根据文件的大小,该命令将需要一些时间才能完成。 假设我们要创建一个名…...

用 Rufus 制作 Ubuntu 系统启动盘时,选择分区类型为MBR还是GPT?

当使用 Rufus 制作 Ubuntu 系统启动盘时,您可以根据您的需求选择分区类型,MBR(Master Boot Record)还是 GPT(GUID Partition Table)。 MBR 是传统的分区表格式,适用于大多数旧版本的操作系统和旧…...

Nodejs+vue+elementui汽车租赁管理系统_1ma2x

语言 node.js 框架:Express 前端:Vue.js 数据库:mysql 数据库工具:Navicat 开发软件:VScode 前端nodejsvueelementui, 课题主要分为三大模块:即管理员模块、用户模块和普通管理员模块,主要功能包括&#…...

Prometheus入门

Prometheus(普罗米修斯) 是一种 新型监控告警工具,Kubernetes 的流行带动了 Prometheus 的应用。 全文参考自 prometheus 学习笔记(1)-mac 单机版环境搭建[1] Mac 上安装 Prometheus brew install prometheus 安装路径在 /usr/local/Cellar/prometheus/2.20.1, 配置文件在 /usr…...

RISC-V云测平台:Compiling The Fedora Linux Kernel Natively on RISC-V

注释:编译Fedora,HS-2 64核RISC-V服务器比Ryzen5700x快两倍! --- 以下是blog 正文 --- # Compiling The Fedora Linux Kernel Natively on RISC-V ## Fedora RISC-V Support There is ongoing work to Fedora to support RISC-V hardwar…...

Vim学习(三)—— Git Repo Gerrit

Git、Gerrit、Repo三者的概念及使用 三者各自作用: git:版本管理库,在git库中没有中心服务器的概念,真正的分布式。 repo:repo就是多个git库的管理工具。如果是多个git库同时管理,可以使用repo。当然使用…...

论坛项目之用户部分

注册接口 实现思路 1.特殊字段检查(比如性别没有给出需要给出默认值) 2.对比检查两次输入的密码是否一致,不一致报错 3.利用UUID生成随机‘盐’值,并使用密码进行MD5加密后与‘盐’进行拼接,生成加密后的密码 4.创建U…...

golang内存对齐

为什么要内存对齐? CPU访问内存时,以CPU的位数为单位进行访问。 如果访问未对齐的内存,处理器需要做两次内存访问,对齐的内存的访问可能仅需要一次,利用内存对齐后提升读取速度。 golang结构体内存对齐规则 在代码编译…...

【CheatSheet】Python、R、Julia数据科学编程极简入门

《Python、R、Julia数据科学编程极简入门》PDF版,是我和小伙伴一起整理的备忘清单,帮助大家10分钟快速入门数据科学编程。 另外,最近 TIOBE 公布了 2023 年 8 月的编程语言排行榜。 Julia 在本月榜单中实现历史性突破,成功跻身 …...

【golang】怎样判断一个变量的类型?

怎样判断一个变量的类型? package mainimport "fmt"var container []string{"zero", "one", "two"} func main() {container : map[int]string{0: "zero", 1: "one", 2: "two"}fmt.Printf…...

怎么学习AJAX相关技术? - 易智编译EaseEditing

学习AJAX(Asynchronous JavaScript and XML)相关技术可以让你实现网页的异步数据交互,提升用户体验。以下是一些学习AJAX技术的步骤和资源: HTML、CSS和JavaScript基础: 首先,确保你已经掌握了基本的HTML…...

JDK、JRE、JVM:揭秘Java的关键三者关系

文章目录 JDK:Java开发工具包JRE:Java运行环境JVM:Java虚拟机关系概述 案例示例:Hello World结语 在Java世界中,你可能经常听到JDK、JRE和JVM这几个概念,它们分别代表了Java开发工具包、Java运行环境和Java…...

【reactNative混合安卓开发~使用问题持续更】

reactNative混合安卓开发 reactNative开发移动端reactNative界面开发前端init.bat文件部分组件第三方组件解析1、定义theme主题shopify/restyle;菜单导航react-navigation/drawer、react-navigation/native; RN问题记录1、使用theme.js写的公共组件报错&…...

OCR的发明人是谁?

OCR的发明背景可以追溯到早期计算机科学和图像处理的研究。随着计算机技术的不断发展,人们开始探索如何将印刷体文字转换为机器可读的文本。 OCR(Optical Character Recognition,光学字符识别)的发明涉及多个人的贡献&#xff0c…...

笔记本电脑连上WiFi之后的IP为什么会变?如何让它不变固定住?

笔记本连上WiFi后获取IP地址的过程,通常是通过DHCP (动态主机配置协议) 来完成的。默认情况下,DHCP会根据连接设备和网络状态动态地分配IP地址,因此你会看到IP地址可能经常改变。 如果你希望电脑的IP地址固定,可以尝试设置静态IP…...

【数学建模】--因子分析模型

因子分析有斯皮尔曼在1904年首次提出,其在某种程度上可以被看成时主成分分析的推广和扩展。 因子分析法通过研究变量间的相关稀疏矩阵,把这些变量间错综复杂的关系归结成少数几个综合因子,由于归结出的因子个数少于原始变量的个数&#xff0c…...

RAM不够?CUBEIDE使用CCMRAM

RAM不够?使用CCMRAM 文章目录 RAM不够?使用CCMRAM打开连接LD文件:添加代码添加标识宏使用 打开连接LD文件: 添加代码 在SECTIONS段最后加上下面代码: _siccmram LOADADDR(.ccmram); /* CCM-RAM section * * IMPORTAN…...

npm ERR! code ERESOLVEnpm ERR! ERESOLVE unable to resolve dependency tree

拉取项目到本地 执行 npm install 报错 遇到这个问题首先确认的就是版本是不是太高了,降一下版本。或者通过yarn命令替代npm install命令安装,同理,启动也可以采用yarn dev 启动代替npm run dev 下面教大家用一个NVM工具,这个工…...

使用 prometheus client SDK 暴露指标

目录 1. 使用 prometheus client SDK 暴露指标1.1. How Go exposition works1.2. Adding your own metrics1.3. Other Go client features 2. Golang Application monitoring using Prometheus2.1. Metrics and Labels2.2. Metrics Types2.2.1. Counters:2.2.2. Gauges:2.2.3. …...

BM3D降噪算法:从原理到多语言实现实战

1. BM3D算法核心思想解析 第一次接触BM3D算法时,我和大多数人一样感到困惑。这个算法名字里的"3D"特别容易让人误解,实际上它指的是将二维图像块堆叠成的三维数组。想象一下,就像把一堆相似的乐高积木块整齐地叠放在一起&#xff0…...

# Deno从零搭建高性能 Web 服务:权限控制与模块化设计实战在现代Node

Deno 从零搭建高性能 Web 服务:权限控制与模块化设计实战 在现代 Node.js 生态中,Deno 正以全新的姿态重新定义后端开发边界。它摒弃了 npm 和 package.json 的依赖管理方式,内置 TypeScript 支持,并通过严格的运行时权限模型提升…...

Cesium 1.9 粒子特效实战:手把手教你封装火焰、爆炸等5种常用效果(附完整代码)

Cesium 1.9 粒子特效实战:手把手教你封装火焰、爆炸等5种常用效果(附完整代码) 在三维地理信息可视化领域,粒子系统是实现动态特效的核心技术之一。想象一下,当我们需要在数字孪生城市中模拟火灾蔓延,或在…...

抖音评论采集终极指南:3步零代码实现自动化数据抓取

抖音评论采集终极指南:3步零代码实现自动化数据抓取 【免费下载链接】TikTokCommentScraper 项目地址: https://gitcode.com/gh_mirrors/ti/TikTokCommentScraper 还在为手动复制抖音评论而烦恼吗?想要批量获取视频评论数据却苦于没有技术背景&a…...

GLPI安装总报错?这份CentOS 7下的“保姆级”排错指南请收好(附PHP模块、文件权限详解)

GLPI安装总报错?这份CentOS 7下的“保姆级”排错指南请收好(附PHP模块、文件权限详解) 在CentOS 7上部署GLPI时,即使按照教程一步步操作,也常常会遇到各种"坑"。本文将带你深入排查这些常见问题,…...

从GLUT到GLFW:我的OpenGL开发环境搭建史与踩坑记录

从GLUT到GLFW&#xff1a;我的OpenGL开发环境搭建史与踩坑记录 第一次接触OpenGL是在大学计算机图形学课程上。教授发来的示例代码里赫然写着#include <GL/glut.h>&#xff0c;当时只觉得这个库名字有点奇怪——谁会用一个叫"胶水"的库呢&#xff1f;但真正让我…...

SQL中INNER JOIN与LEFT JOIN的区别_通过实际场景对比分析

必须用 LEFT JOIN 而非 INNER JOIN 的情况是需保留左表全部记录&#xff0c;即使右表无匹配项&#xff1b;例如统计所有用户及其订单数时&#xff0c;LEFT JOIN 能包含零订单用户&#xff0c;而 INNER JOIN 会将其过滤掉。什么时候必须用 LEFT JOIN&#xff0c;而不是 INNER JO…...

B站视频转文字终极指南:4步免费提取视频内容,高效学习创作必备

B站视频转文字终极指南&#xff1a;4步免费提取视频内容&#xff0c;高效学习创作必备 【免费下载链接】bili2text Bilibili视频转文字&#xff0c;一步到位&#xff0c;输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 还在为手动记录B站视频…...

Qianfan-OCR效果分享:培训教材PPT→知识点分级+案例引用+习题答案结构化

Qianfan-OCR效果分享&#xff1a;培训教材PPT→知识点分级案例引用习题答案结构化 1. 工具概览 Qianfan-OCR是基于百度千帆InternVL架构开发的单卡GPU专属文档解析工具&#xff0c;专为解决教育培训场景中的复杂文档解析需求而设计。与传统OCR工具不同&#xff0c;它不仅能识…...

嵌入式产品量产必看:用LittleFS实现掉电安全的设备启动次数记录

嵌入式设备量产实战&#xff1a;基于LittleFS的掉电安全启动计数方案 在消费电子和IoT设备量产过程中&#xff0c;启动次数统计看似简单却暗藏玄机。想象一个智能电表在雷电天气下频繁断电重启&#xff0c;或工业传感器遭遇突发电压波动——传统存储方案可能导致数据丢失或统计…...