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 结合的学习了。

相关推荐
别动我齐刘海1 小时前
ROS2 Jazzy + C++ 实战路线——基础学习1
c++·vscode·python·ubuntu·机器学习·自动驾驶·github
life码农1 小时前
python框架Flask多语言配置示例
python·flask
苏离~Hack1 小时前
SL-crawler:一个可视化配置的通用网页与 API 数据采集工具
python
小白学大数据1 小时前
Python 小工具实战:用问财接口搭建金融数据采集器
开发语言·人工智能·python
青少儿编程课堂1 小时前
多源最短路与最小环(Floyd 算法图论解析)
c++·python·算法·bfs·信息学竞赛
PiaoKe___1 小时前
从端云解耦到可编程 Android 实例:云手机架构解析与 Python 批量管控实战
arm开发·python·架构·自动化
计算机源码社2 小时前
基于Hadoop+Spark的商家优惠券营销效果数据分析与可视化-基于Python的商家优惠券营销效果检测与评估分析系统
大数据·hadoop·python·数据挖掘·spark·毕业设计·数据可视化
艾莉丝努力练剑4 小时前
【AI大模型接入SDK】LLM会话管理模块设计
网络·c++·人工智能·学习·大模型
萧行之4 小时前
可视化技术复盘:从图形语法看 D3、Vega-Lite、ECharts、Observable Plot
前端·学习·数据可视化