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)
  • 排序功能:按成绩排序显示

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

相关推荐
MediaTea2 小时前
Python 库手册:wave WAV 音频读写工具
开发语言·python·音视频
zyxczyf1232 小时前
软件工程test
python
阿水实证通2 小时前
DoubleML+FLAML实现双重机器学习超参数的自动调优(python实现路径)
人工智能·python·机器学习·实证分析
lkbhua莱克瓦242 小时前
反射4-反射获取成员变量
java·开发语言·servlet·反射
dawnButterfly2 小时前
C 语言标准、编译器与操作系统的关系
c语言·开发语言·c++
风景的人生2 小时前
一台电脑上可以同时运行多个JVM(Java虚拟机)实例
java·开发语言·jvm
攻城狮之路人甲2 小时前
用pycharm写的程序,点击.py无法运行闪退
ide·python·pycharm
syt_biancheng2 小时前
大规模考试系统性能优化与风险评估
python·功能测试·selenium·性能优化·postman
世转神风-3 小时前
qt-float转QByteArray-二进制存储-数据存储(IEEE 754标准)
开发语言·qt