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

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

相关推荐
IT小盘3 小时前
03-大模型API不只是发送Prompt-流式输出超时重试与异常处理
人工智能·python·prompt
Zzz不能停4 小时前
个人博客系统系统---测试报告【笔耕云】
python·功能测试·自动化·压力测试
互联网中的一颗神经元5 小时前
小白python入门 - 39. 采集流水线小项目
开发语言·python
Wang's Blog5 小时前
Go-Zero 项目开发22:用户群聊功能的实现与完善
开发语言·golang
a1117766 小时前
坦克大战3D Three.js 3D (开源项目)
开发语言·javascript·3d
郭老二6 小时前
【Python】常用模块:xmlrpc
python
名字还没想好☜6 小时前
Python itertools 实战:用 groupby、chain、islice 优雅处理大数据流
linux·windows·python·迭代器·itertools
威联通网络存储7 小时前
TS-h2490FU在面板制造Array段AOI缺陷画廊中的并联
python·制造
Wang's Blog7 小时前
Go-Zero项目开发24: 基于Bitmap实现群聊消息已读未读
开发语言·后端·golang
接针8 小时前
UV 常用命令
python·uv