如何在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}")
关键逻辑解释
- 初始化跟踪变量:一开始把
highest_score设为0.0(如果允许负分可以设为float('-inf')),best_student设为空字符串,用来存储遍历过程中遇到的最高分和对应学生。 - 遍历与计算:对每个学生输入成绩后,按照权重计算加权平均分,同时实时和当前最高分对比——如果当前学生的分数更高,就更新
highest_score和best_student的值。 - 最终输出:遍历完所有学生后,直接输出存储的最佳学生信息即可。
你之前尝试用函数返回weightAvg没解决问题,大概率是没在遍历过程中持续跟踪最高分,只是单独计算了每个学生的分数,没有把分数和学生名字绑定起来做比较更新。把跟踪逻辑放在遍历循环里,每次计算完就对比更新,就能解决这个问题。
内容的提问来源于stack exchange,提问作者TryingMyHardest
相关产品推荐
相关产品推荐

