You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python学生成绩加权平均程序中找出并输出最优学生?

解决代码及解释

直接上可运行的完整代码,包含你需要的所有功能:

# 学生列表,可根据实际情况修改
students = ["Alice", "Bob", "Charlie", "David"]

# 初始化最佳学生和最高分变量
best_student = ""
highest_score = 0.0

for student in students:
    print(f"\n请输入{student}的成绩:")
    # 输入各项成绩并转为浮点数
    discussion = float(input("Discussion成绩(20%):"))
    quiz = float(input("Quiz成绩(30%):"))
    programming = float(input("Programming Assignment成绩(50%):"))
    
    # 计算加权平均分
    weighted_avg = discussion * 0.2 + quiz * 0.3 + programming * 0.5
    print(f"{student}的加权平均分:{weighted_avg:.2f}")
    
    # 更新最高分和对应学生
    if weighted_avg > highest_score:
        highest_score = weighted_avg
        best_student = student

# 输出最佳学生信息
print(f"\nThe best student is {best_student} with a score of {highest_score:.2f}")

关键逻辑解释

  1. 初始化跟踪变量:一开始把highest_score设为0.0(如果允许负分可以设为float('-inf')),best_student设为空字符串,用来存储遍历过程中遇到的最高分和对应学生。
  2. 遍历与计算:对每个学生输入成绩后,按照权重计算加权平均分,同时实时和当前最高分对比——如果当前学生的分数更高,就更新highest_score和best_student的值。
  3. 最终输出:遍历完所有学生后,直接输出存储的最佳学生信息即可。

你之前尝试用函数返回weightAvg没解决问题,大概率是没在遍历过程中持续跟踪最高分,只是单独计算了每个学生的分数,没有把分数和学生名字绑定起来做比较更新。把跟踪逻辑放在遍历循环里,每次计算完就对比更新,就能解决这个问题。

内容的提问来源于stack exchange,提问作者TryingMyHardest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 01:05:52