20234208 2023-2024-2 《Python程序设计》实验4 Python综合实践

20234208江学坤 2024-05-19 18:43:38

20234208 2023-2024-2 《Python程序设计》实验4 Python综合实践

课程:《Python程序设计》
班级: 2342
姓名: 江学坤
学号:20234208
实验教师:王志强
实验日期:2024年5月14日
必修/选修: 专选课

1.实验内容

Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
课代表和各小组负责人收集作业(源代码、视频、综合实践报告)
例如:编写从社交网络爬取数据,实现可视化舆情监控或者情感分析。
例如:利用公开数据集,开展图像分类、恶意软件检测等
例如:利用Python库,基于OCR技术实现自动化提取图片中数据,并填入excel中。
例如:爬取天气数据,实现自动化微信提醒
例如:利用爬虫,实现自动化下载网站视频、文件等。
例如:编写小游戏:坦克大战、贪吃蛇、扫雷等等
注:在Windows/Linux系统上使用VIM、PDB、IDLE、Pycharm等工具编程实现。

2.实验过程及结果

在云校查询成绩时得到启发,编写了一个可以录入和查询学生成绩的学生信息管理系统,具体过程如下:

1.初始化一个空字典用于储存学生信息。

students = {}

2.实现录入学生成绩信息功能。通过定义和if函数来确保录入的学生姓名和成绩不重复。

def add_student():
    name = input("请输入学生姓名:")
    if name in students:
        print("该学生已存在!")
        return
    score = float(input("请输入学生的成绩:"))
    students[name] = (name, score)
    print(f"{name} 的信息已添加。")

3.实现一次性展示所有已录入的学生成绩的功能。排除了未任何录入成绩学生就进行展示的可能性。

def display_students():
    if not students:
        print("当前无学生信息。")
        return
    print("所有学生信息:")
    for student_id, (name, score) in students.items():
        print(f"姓名:{name}, 成绩: {score}")

4.实现单独查找某一名学生成绩的功能。同样使用上述方法,排除了查找出未录入的学生成绩的可能性。

def search_student():
    name_to_search = input("请输入要查找的学生姓名:")
    if name_to_search in students:
        _, score = students[name_to_search]
        print(f"{name_to_search} 的成绩是:{score}")
    else:
        print(f"未找到名为 {name_to_search} 的学生。")

5.编写主函数,做出程序入口点、界面。实现具体操作。

def main():
    while True:
        print("\学生信息管理系统菜单:")
        print("1. 添加学生")
        print("2. 显示所有学生")
        print("3. 查找学生")
        print("4. 退出")

        choice = input("请选择操作(1/2/3/4):")

        if choice == '1':
            add_student()
        elif choice == '2':
            display_students()
        elif choice == '3':
            search_student()
        elif choice == '4':
            print("感谢使用,再见!")
            break
        else:
            print("无效的选择,请重新输入。")

if __name__ == "__main__":
    main()

3.源代码

最终源代码如下:

students = {}

def add_student():
    name = input("请输入学生姓名:")
    if name in students:
        print("该学生已存在!")
        return
    score = float(input("请输入学生的成绩:"))
    students[name] = (name, score)
    print(f"{name} 的信息已添加。")

def display_students():
    if not students:
        print("当前无学生信息。")
        return
    print("所有学生信息:")
    for student_id, (name, score) in students.items():
        print(f"姓名:{name}, 成绩: {score}")

def search_student():
    name_to_search = input("请输入要查找的学生姓名:")
    if name_to_search in students:
        _, score = students[name_to_search]
        print(f"{name_to_search} 的成绩是:{score}")
    else:
        print(f"未找到名为 {name_to_search} 的学生。")

def main():
    while True:
        print("\学生信息管理系统菜单:")
        print("1. 添加学生")
        print("2. 显示所有学生")
        print("3. 查找学生")
        print("4. 退出")

        choice = input("请选择操作(1/2/3/4):")

        if choice == '1':
            add_student()
        elif choice == '2':
            display_students()
        elif choice == '3':
            search_student()
        elif choice == '4':
            print("感谢使用,再见!")
            break
        else:
            print("无效的选择,请重新输入。")

if __name__ == "__main__":
    main()

4.程序运行情况

 

 

5.本次实验遇到的问题及感想体会

问题1:在显示所有学生信息处报错

问题1解决方案:在“for”后误将退格删除,导致其后的“print”与其在同一格。退格后解决。

问题2:不了解程序怎么开始运行。

问题2解决方案:在上网查找和请教同学后得知主函数的运用方法。

问题3:不清楚如何将学生成绩进行储存。

问题3解决方案:复习前几课的内容,询问同学,对字典用法的理解有所加深,设置空字典来储存。

我的感想体会:一开始在写出程序主体部分时我非常满意,但在运行之后处处报错,无法运行,在运用大模型等工具后依然无法解决,在和向Python掌握程度较高的同学请教后才将代码逐渐完善,对自己做出的最终成品也很有成就感,体会到了自己程序编写的快乐。

6.课程总结与建议

在Python程序设计这门课上,虽然作为文科生的我对这门语言的学习只有皮毛,但我认为这门课程很好地激发了我个人对代码编写的兴趣,通过自己的思考来实现各种功能是一件很有乐趣的事。在课上,虽然老师对我们的限制和管束不是很多,导致部分甚至很多同学实际上并没有完全掌握相关知识,但是我认为老师在课堂上营造的轻松愉悦氛围更加让我们初学者对于Python语言的学习和应用有了更好的体验。在此基础上,我的不成熟的建议是,更多地代入我们初学者的视角,更加详细地讲解每一个知识和过程,将老师渊博的知识能够更好地传达、教授给我们。最后,感谢志强老师近一个学期以来对我们耐心、幽默的教导!

...全文
138 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

93

社区成员

发帖
与我相关
我的任务
社区描述
Python程序设计作业
软件构建 高校 北京·丰台区
社区管理员
  • blackwall0321
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧