当前位置: 首页 > news >正文

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

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

http://www.jsqmd.com/news/139608/

相关文章:

  • # 救命!面试被问HTTP缓存,我靠这篇笔记逆袭了(附实战工具+避坑指南)
  • Fiddler弱网测试
  • 微信小程序uniapp-vue美食厨房食谱大全分享
  • 想拥有超强大脑?先戒掉这7种“记忆杀手”食物!
  • 【课程设计/毕业设计】基于springboot的在线考试系统课程信息管理,在线考试管理【附源码、数据库、万字文档】
  • todgub6.dll文件丢失找不到 免费下载方法
  • 元旦晚会小品
  • 【毕业设计】基于springboot的在线考试系统(源码+文档+远程调试,全bao定制等)
  • 数据隐私守护者:访答本地知识库
  • 《真理必是函数证明》
  • 微信小程序uniapp-vue美食定制个性化点餐推荐系统
  • Windows系统文件tquery.dll丢失损坏 免费下载方法
  • Java计算机毕设之基于springboot的在线考试系统(完整前后端代码+说明文档+LW,调试定制等)
  • 学校图书馆自动化恒温恒湿控制系统技术方案
  • 赋能具身智能:基于DUST框架的Franka Research 3机械臂视觉-语言-动作模型研究
  • KylinOS 核心操作细节与实操指南
  • HR 总结型 PPT 工具评测:从文档到 PPT 哪家强
  • 数据自己掌控!Nextcloud+CPolar 打造灵活私有云
  • 全球化部署-时区方案
  • # HTTP缓存机制轻松学(新手版+实战小技巧)
  • Windows系统文件tsgqec.dll丢失损坏问题 下载修复方法
  • KylinOS安装、功能快捷键使用、命令介绍和使用的细节
  • 家居密封胶带选购指南:品牌、性价比与靠谱厂家是关键
  • 微信小程序uniapp-vue面试刷题网站考试系统功能全
  • Java毕设选题推荐:基于springboot的在线考试系统在线考试及试题管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Windows系统文件twinapi.dll丢失损坏 免费下载方法
  • 2025年我的台历定制之旅:温州云边包装让企业宣传更有温度
  • JMeter测试接口
  • 代码签名证书:选型与申请全攻略
  • BioSIM抗人MASP2抗体SIM0470:聚焦凝集素补体通路