Python学生成绩管理系统:从输入到分析的完整实现

96 阅读4分钟

一、引言:成绩管理系统的实际应用价值

在教育管理和数据分析领域,学生成绩管理系统是最基础也最实用的应用之一。通过Python实现一个简单的成绩管理系统,不仅可以掌握列表操作、用户输入处理和数据分析等核心技能,还能理解实际项目开发的基本流程。本文将详细讲解如何构建一个功能完整的学生成绩管理系统,涵盖数据输入、倒序输出、平均值计算和条件筛选等功能。

二、系统设计与代码实现

案例:学生成绩管理系统

问题描述:创建一个程序,实现以下功能:

  1. 从键盘输入5个学生成绩并存储到列表中
  2. 将成绩倒序输出
  3. 计算平均成绩
  4. 根据用户输入的阈值筛选并输出高于该阈值的成绩
#编程:定义一个列表,用于存储学生的成绩,成绩从键盘输入存储到列表中(键盘录入5个值); 要求:
#定义了一个名为cj的列表
cj = []
#通过循环把五个键盘录入的值存入列表
for i in range(1,6):
    a2 = int(input("输入第%d个成绩:"%i))
    cj.append(a2)
print(cj)
#(1)将所有的成绩倒叙打印输出
#先把列表倒叙
cj.reverse()
#再输出列表的每一个元素
for i in cj:
    print(i,"\t",end="")
print()
#(2)计算学生的平均成绩
pjcj = sum(cj)/len(cj)
print("平均值为:",pjcj)
#(3)键盘输入一个成绩s,打印出成绩 > s的结果
s = int(input("请输入一个用于比较的成绩:"))
for i in cj:
    if( s < i ):
        print(i,"\t",end="")

运行结果示例(假设用户依次输入:85, 92, 78, 90, 88,比较成绩输入85):

Snipaste_2026-01-05_18-28-44.png

代码分析:

这个成绩管理系统实现了四个核心功能,让我们逐一分析:

三、功能模块详解

1. 数据输入模块

cj = []
for i in range(1,6):
    a2 = int(input("输入第%d个成绩:"%i))
    cj.append(a2)
print(cj)

代码分析

  • 列表初始化cj = [] 创建空列表存储成绩
  • 循环输入for i in range(1,6) 循环5次,i从1到5
  • 输入处理int(input(...)) 将输入的字符串转换为整数
  • 数据存储cj.append(a2) 将每个成绩添加到列表末尾
  • 数据展示print(cj) 输出完整的成绩列表

优化建议

# 添加输入验证
def get_valid_score(prompt):
    while True:
        try:
            score = int(input(prompt))
            if 0 <= score <= 100:
                return score
            else:
                print("成绩必须在0-100之间")
        except ValueError:
            print("请输入有效的数字")

cj = []
for i in range(1, 6):
    score = get_valid_score(f"输入第{i}个成绩:")
    cj.append(score)

2. 倒序输出模块

cj.reverse()
for i in cj:
    print(i,"\t",end="")
print()

代码分析

  • 列表反转cj.reverse() 原地反转列表顺序
    • 原列表:[85, 92, 78, 90, 88]
    • 反转后:[88, 90, 78, 92, 85]
  • 水平输出print(i,"\t",end="")
    • "\t" 制表符实现对齐
    • end="" 阻止自动换行,实现水平排列
  • 换行处理:最后的print() 输出换行符

替代方案

# 方法1:使用切片不改变原列表
for score in cj[::-1]:
    print(f"{score}\t", end="")

# 方法2:使用reversed()函数
for score in reversed(cj):
    print(f"{score}\t", end="")

3. 平均值计算模块

pjcj = sum(cj)/len(cj)
print("平均值为:",pjcj)

代码分析

  • 平均值公式:总和 ÷ 数量
  • 内置函数
    • sum(cj):计算列表所有元素的总和
    • len(cj):获取列表元素个数
  • 计算结果(88+90+78+92+85)/5 = 433/5 = 86.6

格式化输出改进

average = sum(cj) / len(cj)
print(f"平均值为:{average:.2f}")  # 保留两位小数
print("平均值为:{:.1f}".format(average))  # 另一种格式化方式

4. 条件筛选模块

s = int(input("请输入一个用于比较的成绩:"))
for i in cj:
    if( s < i ):
        print(i,"\t",end="")

代码分析

  • 阈值输入int(input(...)) 获取比较基准值
  • 条件筛选if s < i: 判断成绩是否高于阈值
  • 结果输出:输出所有符合条件的成绩

优化版本

threshold = int(input("请输入一个用于比较的成绩:"))
# 使用列表推导式筛选
high_scores = [score for score in cj if score > threshold]

if high_scores:
    print(f"高于{threshold}的成绩有:")
    for score in high_scores:
        print(f"{score}\t", end="")
    print(f"\n共{len(high_scores)}个")
else:
    print(f"没有高于{threshold}的成绩")