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

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

相关推荐
草履虫建模4 分钟前
力扣算法 1768. 交替合并字符串
java·开发语言·算法·leetcode·职场和发展·idea·基础
naruto_lnq2 小时前
分布式系统安全通信
开发语言·c++·算法
学嵌入式的小杨同学3 小时前
【Linux 封神之路】信号编程全解析:从信号基础到 MP3 播放器实战(含核心 API 与避坑指南)
java·linux·c语言·开发语言·vscode·vim·ux
Re.不晚3 小时前
Java入门17——异常
java·开发语言
精彩极了吧3 小时前
C语言基本语法-自定义类型:结构体&联合体&枚举
c语言·开发语言·枚举·结构体·内存对齐·位段·联合
好家伙VCC4 小时前
### WebRTC技术:实时通信的革新与实现####webRTC(Web Real-TimeComm
java·前端·python·webrtc
南极星10054 小时前
蓝桥杯JAVA--启蒙之路(十)class版本 模块
java·开发语言
baidu_247438614 小时前
Android ViewModel定时任务
android·开发语言·javascript
Dev7z4 小时前
基于 MATLAB 的铣削切削力建模与仿真
开发语言·matlab
不能隔夜的咖喱5 小时前
牛客网刷题(2)
java·开发语言·算法