Есть ответ 👍

(Задача по Питону) По заданным сведениям об учениках класса определить средний вес мальчиков и средний рост девушек. Вывести фамилию самого высокого ученика в классе.

И напишите с объяснением

220
228
Посмотреть ответы 2

Ответы на вопрос:


--- Python 3.7 ---

import statistics

def ReadData(Count): #Читаем с консоли информацию об ученике

   print('Enter Student parameters: gender (G/B (Upper case!)),  surname, height and weight. Use "space" to split data\nStrictly follow input order!\n')

   for _ in range(Count):

       rawData = input().split(' ')

       yield {'gender': rawData[0],'surname':rawData[1], 'height':int(rawData[2]), 'weight':int(rawData[3])}

   

def IsolateParameter(Container, Attribute): #Возвращает итерируемый объект. Перебирает словарь, возвращает значение в словаре по заданному ключу

   for LocCont in Container:

       yield LocCont[Attribute]

       

def StatAverage(Cont, Attribute, StatFunc): #Подсчитывает статистику (функция, использующаяся для подсчёта статистики, задаётся при вызове функции под именем StatFunc) для всех значений словаря по заданному ключу

   return StatFunc(list(IsolateParameter(Cont, Attribute)))

   

def GetTopHeight(Cont): #Возвращает максимальное значение среди всех элементов словаря под ключом 'height'

   return max(list(IsolateParameter(Cont, 'height')))

   

def main(): #Основное тело программы.

   RawData = ReadData(int(input('Count of Students:\n')))

   ListedData = list(RawData) #Работать с генератором далее не удобно

   AllBoys = filter(lambda g: g['gender'] == 'B', ListedData)

   AllGirls = filter(lambda g: g['gender'] == 'G', ListedData)

   AvBoyWeight = StatAverage(AllBoys, 'weight', statistics.mean)

   AvGirlsHeight = StatAverage(AllGirls, 'height', statistics.mean)

   TopHeightSurname = GetTopHeight(ListedData)

   print('''

   Average Boys weight: {0};

   Average Girls height: {1};

   Surname of tallest student: {2}

   '''.format(AvBoyWeight, AvGirlsHeight, TopHeightSurname))

   

if __name__ == '__main__':

   main()

Объяснение:


1. 25 2. 27 3. 30 4. 37 5. 41 6. 58 7. 71 8. 78 9. 80 10. 90

Популярно: Информатика