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

Python如何根据列表存储的学生分数分配评级并输出姓名分数对应结果

实现代码补充

你可以在原有代码的TODO位置添加以下逻辑,可根据实际需求调整评级对应的分数阈值:

def get_rating(score):
    if score >= 90:
        return "A"
    elif score >= 80:
        return "B"
    elif score >= 70:
        return "C"
    elif score >= 60:
        return "D"
    else:
        return "F"

# 按要求格式打印结果
print("姓名 分数 评级")
print("------------")
for name, score in result:
    rating = get_rating(score)
    print(f"{name} {score} {rating}")

优化后完整代码

同步修正了原有代码的两处小问题:

  • 移除了冗余的i += 1代码,range()会自动控制迭代次数
  • 用int()替换eval()处理分数输入,避免恶意代码执行风险
students = [] 
for i in range(2):
    x = input("Enter Student Name. \n")
    students.insert(i, x)
print(students)

grades = []
for student in students:
    grade = int(input(f"Enter the grade for {student}: "))
    grades.append(grade)

result = list(zip(students, grades))
print(result)

average = sum(grades) / len(grades)
print("Average is: " + str(average))
total = sum(grades)
# print("Total is: " + str(total))
print("Highest marks", max(list(zip(grades, students))))
print("Lowest marks", min(list(zip(grades, students))))

# 评级分配与打印
def get_rating(score):
    if score >= 90:
        return "A"
    elif score >= 80:
        return "B"
    elif score >= 70:
        return "C"
    elif score >= 60:
        return "D"
    else:
        return "F"

print("姓名 分数 评级")
print("------------")
for name, score in result:
    rating = get_rating(score)
    print(f"{name} {score} {rating}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:45:02