python的小型实践项目

🎓 学生成绩管理系统(Python 控制台版)

功能:
  1. 添加学生信息(姓名、学号、成绩)
  2. 查看所有学生信息
  3. 根据学号或姓名查找学生
  4. 修改学生成绩
  5. 删除学生信息
  6. 统计平均分、最高分、最低分
  7. 退出系统

✅ 项目代码:

学生成绩管理系统

students = \[\] # 全局列表存储学生信息,每个学生是一个字典

def add_student():

"""添加学生"""

name = input("请输入学生姓名: ")

student_id = input("请输入学生学号: ")

检查学号是否已存在

for s in students:

if s'学号' == student_id:

print("❌ 学号已存在!")

return

try:

score = float(input("请输入学生成绩: "))

if score < 0 or score > 100:

print("⚠️ 成绩应在0-100之间!")

return

except ValueError:

print("❌ 输入的成绩无效,请输入数字!")

return

student = {

'姓名': name,

'学号': student_id,

'成绩': score

}

students.append(student)

print(f"✅ 学生 {name} 添加成功!")

def view_all_students():

"""查看所有学生"""

if not students:

print("📭 暂无学生信息。")

return

print("\n" + "="*50)

print("所有学生信息:")

print("="*50)

for s in students:

print(f"姓名: {s'姓名'}, 学号: {s'学号'}, 成绩: {s'成绩'}")

print("="*50)

def search_student():

"""查找学生"""

if not students:

print("📭 暂无学生信息。")

return

keyword = input("请输入要查找的姓名或学号: ")

found = False

for s in students:

if keyword == s'姓名' or keyword == s'学号':

print(f"🔍 找到学生: 姓名: {s'姓名'}, 学号: {s'学号'}, 成绩: {s'成绩'}")

found = True

if not found:

print("❌ 未找到该学生。")

def update_student():

"""修改学生成绩"""

if not students:

print("📭 暂无学生信息。")

return

student_id = input("请输入要修改的学生学号: ")

for s in students:

if s'学号' == student_id:

try:

new_score = float(input(f"当前成绩为 {s'成绩'},请输入新成绩: "))

if new_score < 0 or new_score > 100:

print("⚠️ 成绩应在0-100之间!")

return

s'成绩' = new_score

print("✅ 成绩更新成功!")

except ValueError:

print("❌ 输入无效!")

return

print("❌ 未找到该学生。")

def delete_student():

"""删除学生"""

if not students:

print("📭 暂无学生信息。")

return

student_id = input("请输入要删除的学生学号: ")

for i, s in enumerate(students):

if s'学号' == student_id:

confirm = input(f"确定要删除学生 {s'姓名'} 吗?(y/n): ")

if confirm.lower() == 'y':

students.pop(i)

print("✅ 学生删除成功!")

else:

print("❌ 取消删除。")

return

print("❌ 未找到该学生。")

def show_statistics():

"""显示统计信息"""

if not students:

print("📭 暂无学生成绩数据。")

return

scores = s\['成绩' for s in students]

avg_score = sum(scores) / len(scores)

max_score = max(scores)

min_score = min(scores)

print("\n📊 成绩统计:")

print(f"总人数: {len(students)}")

print(f"平均分: {avg_score:.2f}")

print(f"最高分: {max_score}")

print(f"最低分: {min_score}")

def main():

"""主菜单"""

print("🎓 欢迎使用学生成绩管理系统")

while True:

print("\n" + "-"*40)

print("请选择功能:")

print("1. 添加学生")

print("2. 查看所有学生")

print("3. 查找学生")

print("4. 修改学生成绩")

print("5. 删除学生")

print("6. 显示统计信息")

print("7. 退出系统")

choice = input("请输入选项 (1-7): ")

if choice == '1':

add_student()

elif choice == '2':

view_all_students()

elif choice == '3':

search_student()

elif choice == '4':

update_student()

elif choice == '5':

delete_student()

elif choice == '6':

show_statistics()

elif choice == '7':

print("👋 感谢使用,再见!")

break

else:

print("❌ 无效输入,请重新选择。")

if name == "main":

main()


🔧 如何运行?

  1. 将上述代码保存为 student_grade_system.py

  2. 在终端运行:

    复制代码
    python student_grade_system.py

💡 项目扩展建议(进阶练习):

  • 使用文件(如 students.txt 或 JSON)持久化保存数据
  • 支持多门课程成绩(如语文、数学)
  • 使用类(StudentGradeSystem)重构代码
  • 添加图形界面(Tkinter 或 PyQt)
  • 排序功能:按成绩排序显示

这个项目涵盖了输入输出、循环、条件判断、列表和字典操作等基础知识点。

相关推荐
鹏易灵8 小时前
C++——8.移动语义初探(移动构造、移动赋值)
开发语言·c++·php
2601_962341308 小时前
计算机毕业设计之jsp考研在线复习平台
java·大数据·开发语言·hadoop·python·考研·课程设计
凯瑟琳.奥古斯特8 小时前
力扣1008:前序重建BST
开发语言·c++·算法·leetcode·职场和发展
2zcode9 小时前
项目文档:基于MATLAB图像处理的饮料瓶灌装液位检测系统设计与实现
开发语言·图像处理·matlab
云烟成雨TD9 小时前
LangFlow 1.x 系列【7】工作流创建与部署指南
人工智能·python·agent
月疯9 小时前
np.where()[0]的用法
开发语言·python·numpy
z落落9 小时前
C#五大加密算法(AES、DES、MD5、RSA、SHA)
开发语言·c#
namexingyun9 小时前
Scaling Law bug实战启示:从“虚胖“到“精瘦“的算力效率革命
开发语言·网络·人工智能·bug·ai编程
KaMeidebaby9 小时前
卡梅德生物技术快报|纳米抗体技术全套实操流程:AFB1 全合成文库淘选 + 分子对接定点突变参数手册
人工智能·python·tcp/ip·算法·机器学习
hnxaoli9 小时前
统信小程序(十六)xls转xlsx
开发语言·python·小程序