Python学习记录25(基础知识终结篇)

接下来是一个用面向对象思路做的案例:

#目标:完成教务管理系统的开发,教务管理系统可以管理在校学生的成绩信息,通过控制台菜单与用户交互。

#要求 #

1.采用面向对象编程思想完成如下需求

2.添加学生成绩,根据输入的学生姓名、语文数学英语成绩,记录在系统中

3.修改学生成绩,根据输入的学生姓名,修改对应学生成绩

4.删除学生成绩,根据输入的学生姓名,删除对应学生成绩

5.查询指定学生成绩,根据输入的学生姓名查找对应学生的成绩并输出

6.展示全部学生成绩

案例:教务管理系统

学生类

class Student: def init(self, name, Chinese, Math, English): # 初始化学生对象,设置姓名和三科成绩 self.name = name self.Chinese: float = Chinese # 类型提示,建议传入数字 self.Math: float = Math self.English: float = English

复制代码
# 格式化输出学生信息,包括总分
def __str__(self):
    return (f'姓名:{self.name} | 语文:{self.Chinese} | 数学:{self.Math} | '
            f'英语:{self.English} | 总分:{self.Chinese + self.Math + self.English}')
修改学生成绩,参数为 None 时表示不修改该科
def update_score(self, Chinese=None, Math=None, English=None):
if Chinese is not None:
self.Chinese = Chinese
if Math is not None:
self.Math = Math
if English is not None:
self.English = English

教务管理系统类

class EduManagement: system_version = '1.0' system_name = '教务管理系统'

复制代码
def __init__(self):
    # 用列表存储所有学生对象
    self.student_list = []
添加学生成绩
def add_student(self):
name = input('请输入学生姓名:')
# 检查姓名是否已存在,防止重复添加
for s in self.student_list:
    if s.name == name:
        print('该学生已经存在,添加失败~')
        return

# 输入三科成绩
Chinese = int(input('请输入学生语文成绩:'))
Math = int(input('请输入学生数学成绩:'))
English = int(input('请输入学生英语成绩:'))

# 校验成绩范围
if 0 <= Chinese <= 100 and 0 <= Math <= 100 and 0 <= English <= 100:
    stu = Student(name, Chinese, Math, English)
    self.student_list.append(stu)
    print('学生信息添加成功~')
else:
    print('各科成绩必须在0-100之间!')
修改学生成绩
def update_student(self):
name = input('请输入学生姓名:')
# 根据姓名查找学生
for s in self.student_list:
    if s.name == name:
        print(f'当前成绩:{s}')
        Chinese = int(input('请输入修改后的学生语文成绩:'))
        Math = int(input('请输入修改后的学生数学成绩:'))
        English = int(input('请输入修改后的学生英语成绩:'))

        # 校验成绩范围
        if 0 <= Chinese <= 100 and 0 <= Math <= 100 and 0 <= English <= 100:
            s.update_score(Chinese, Math, English)
            print('成绩修改成功~')
            print(f'修改后的成绩:{s}')
            return
        else:
            print('各科成绩必须在0-100之间!')
            return   # 成绩不合法则直接结束,不再执行后面的"未找到"提示

print('未找到该学生,执行失败!')
删除学生成绩
def delete_student(self):
name = input('请输入要删除的学生姓名:')
# 查找并删除
for s in self.student_list:
    if s.name == name:
        self.student_list.remove(s)
        print('学生信息删除成功!')
        return

print('未找到该学生,删除失败!')
查询指定学生成绩
def query_student(self):
name = input('请输入要查询的学生姓名:')
for s in self.student_list:
    if s.name == name:
        print(f'学生信息:{s}')
        return

print('未找到该学生!')
展示全部学生成绩
def list_student(self):
if not self.student_list:
print('暂无学生信息')
else:
for s in self.student_list:
print(s)
运行系统主菜单
def run(self):
print(f'欢迎使用教学管理系统 V{EduManagement.system_version}')
while True:
    print()
    print('# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #')
    print('#   1.添加学生 2.修改学生 3.删除学生 4.查询指定学生 5.查询所有学生 6.退出系统    #')
    print('# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #')
    print()

    # 修正:这里必须用 input() 获取输入,否则 choice 永远是固定字符串,导致无限循环
    choice = input('请选择要执行的操作,输入1-6:')

    match choice:
        case '1':
            self.add_student()
        case '2':
            self.update_student()
        case '3':
            self.delete_student()
        case '4':
            self.query_student()
        case '5':
            self.list_student()
        case '6':
            print('Bye~')
            break
        case _:
            print('输入错误!请选择1-6之间的菜单功能!')

测试

if name == 'main':

edu_management = EduManagement() edu_management.run()

这里注意缩进

以上这些就是关于 Python 的所有基础知识了,终于学完了,接下来就进入到 Python 和 AI 结合的学习了。

相关推荐
飞Link8 小时前
什么是 AirSim?一文读懂无人机仿真平台
python·算法·无人机
曲径海盗8 小时前
【Python 学习第 38 天】for 循环
python·学习笔记·编程入门
zhangrelay9 小时前
新版|-|单片机原理与接口技术-2026持续改进优化-从MEGA2560-ESP32与Wokwi到ROS2-Lyrical与具身智能栈
笔记·单片机·嵌入式硬件·学习
在世修行9 小时前
智学文枢:变式题生成引擎
python·ai·pyside·题目生成
On The Road :11 小时前
Java 多线程详解:从入门到线程安全
java·python·安全
岁月宁静11 小时前
如何设计支持 Skills 的 Agent?一套可扩展的四层架构
python·agent
岁月宁静11 小时前
CrewAI 快速上手:10 分钟搭建你的第一个 Agent 团队
python·agent
曲径海盗11 小时前
【Python 学习第 40 天】for 循环
python·学习笔记·编程入门
专注仿真12 小时前
知识问答大模型-rag算法详解
人工智能·python·控制算法
染指111012 小时前
158.Agent-LangGraph-子图(共享状态和不共享状态模式)
开发语言·人工智能·python·ui·agent·agents