Поиск наименьшего результата теста и среднего из двух высоких результатов

#python #average #display

#python #среднее #отобразить

Вопрос:

Я выяснил все остальное в своей домашней работе, но я застрял на последнем шаге, который требует, чтобы я нашел наименьший результат теста, затем отобразил среднее значение двух наивысших результатов теста, а также показал наименьший результат теста. Я знаю, что мне нужно добавить функцию if / elif / else под «def findAndReturnLowest», но я выдал ошибку. это снимок экрана, на котором я должен это сделать, введите описание изображения здесь

это мой код

 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()
  

Комментарии:

1. пока вы мало что сделали в своем коде, похоже, вы просто опубликовали готовые функции из задания. также ваш расчет для среднего значения не выглядит корректным, и вы не передаете переменную lowest нигде в этой функции.

Ответ №1:

Используйте вложенные if :

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

    else:
        return s2 if s1 > s2 else s1
  

Комментарии:

1. @aws_apprentice Верно, полностью пропустил это.

2. удален мой отрицательный отзыв, но вы можете упростить эти условия намного больше

3. предполагается ли, что должна быть функция elif? Код не выполняет эту часть. 🙁

4. @MosesMartinez вы можете взять второй if вариант и объединить его с else , чтобы поместить в elif .

Ответ №2:

Очень простой подход, который должен сработать, но существует множество:

 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()
  

Комментарии:

1. Если вы собираетесь использовать sort … почему бы просто не использовать min ?