查找最低测试分数和两个高分数的平均值



我在家庭作业中弄清楚了其他所有问题,但我被困在最后一步,这需要我找到最低的测试分数,然后显示最高的两个测试分数的平均值,并显示最低的测试分数。我知道我需要在"def findAndReturnLowest"下面添加一个 if/elif/else 函数,但我遇到了错误。这是我应该做的屏幕截图 在此处输入图像描述

这是我的代码

def main():
    score1 = 0.0
    score2 = 0.0
    score3 = 0.0
    score1 = getTestScore()
    score2 = getTestScore()
    score3 = getTestScore()
    calcAvgAndDisplayResults(score1, score2, score3)
def calcAvgAndDisplayResults(s1, s2, s3):
    lowest = 0.0
    average = 0.0
    lowest = findAndReturnLowest(s1, s2, s3)
def findAndReturnLowest(s1, s2, s3):

    average = (s1+s2+s3-lowest)/2
    print("Average = ", average)
def getTestScore():
    test = 0.0
    test=float(input("Enter a test score between 0 and 100: "))
    return test
# start of program
main()

使用嵌套if

def findAndReturnLowest(s1, s2, s3):
    if s1 > s3 and s2 > s3:
        return s3
    else:
        return s2 if s1 > s2 else s1

非常简单的方法应该有效,但有很多:

def main():
    score1 = 0.0
    score2 = 0.0
    score3 = 0.0
    score1 = getTestScore()
    score2 = getTestScore()
    score3 = getTestScore()
    calcAvgAndDisplayResults(score1, score2, score3)
def calcAvgAndDisplayResults(s1, s2, s3):
    lowest = findAndReturnLowest(s1, s2, s3)
def findAndReturnLowest(s1, s2, s3 ):
    lowest = min([int(x) for x in [s1,s2,s3]])
    average = (s1+s2+s3-lowest)/2
    print("Average = ", average)
    print("Lowest = ", lowest)
def getTestScore():
    test = 0.0
    test=float(input("Enter a test score between 0 and 100: "))
    return test
# start of program
main()

最新更新