Python课程梯度

2024-04-29 02:14:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我在为课程评分员写代码。要求是

“如果平均成绩大于或等于70,并且没有一个测试分数低于50,则返回一条消息“通过”。 如果平均分数低于70或至少有一个测试分数低于50,则返回“失败”消息

一旦它确定了平均值,它就给出了通过/失败语句。我没看到什么?在

下面是我写的代码:

def course_grader(test_scores):
    average = sum(test_scores)/len(test_scores)
    if average >= 70:
        return "pass"
    else: 
        return "fail"   

def main():
    print(course_grader([100,75,45]))     # "fail"
    print(course_grader([100,70,85]))     # "pass"
    print(course_grader([80,60,60]))      # "fail"
    print(course_grader([80,80,90,30,80]))  # "fail"
    print(course_grader([70,70,70,70,70]))  # "pass"

if __name__ == "__main__":
    main()

Tags: 代码test消息returnifmaindefpass
2条回答

您不需要检查测试分数是否大于或等于50,为此,请使用all()函数在一行中评估所有测试分数的条件,如下所示:

def course_grader(test_scores):
    average = sum(test_scores)/len(test_scores)
    # every ts (test score) must be greater than or equal to 50
    if average >= 70 and all(ts >= 50 for ts in test_scores):
        return "pass"
    else: 
        return "fail

您还可以检查测试分数的min是否大于或等于50。在

def course_grader(test_scores):
    average = sum(test_scores)/len(test_scores)
    if average >= 70 and min(test_scores) >= 50:
        return "pass"
    else: 
        return "fail"   

相关问题 更多 >