В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Kamilkamilka222
Kamilkamilka222
07.09.2020 23:53 •  Информатика

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

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

Показать ответ
Ответ:
JloJlKeK
JloJlKeK
15.10.2020 07:03

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

Объяснение:

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота