Вопрос задан 07.07.2023 в 20:28. Предмет Информатика. Спрашивает Радаев Сергей.

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

средний рост девушек. Вывести фамилию самого высокого ученика в классе. И напишите с объяснением, пожалуйста
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Романенкова Маша.

Ответ:

--- 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
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, я помогу вам написать код на Python для решения данной задачи. Предположим, что у вас есть список students, каждый элемент которого представляет информацию об ученике в виде словаря. Каждый словарь содержит ключи "имя", "пол", "рост" и "вес". Вам нужно вычислить средний вес мальчиков, средний рост девушек и найти фамилию самого высокого ученика в классе.

Вот как может выглядеть код:

python
def main(): students = [ {"имя": "Иванов", "пол": "м", "рост": 175, "вес": 70}, {"имя": "Петрова", "пол": "ж", "рост": 160, "вес": 55}, {"имя": "Сидоров", "пол": "м", "рост": 180, "вес": 75}, # ... добавьте остальных учеников ] male_weights = [] female_heights = [] tallest_student = None for student in students: if student["пол"] == "м": male_weights.append(student["вес"]) else: female_heights.append(student["рост"]) if tallest_student is None or student["рост"] > tallest_student["рост"]: tallest_student = student avg_male_weight = sum(male_weights) / len(male_weights) if male_weights else 0 avg_female_height = sum(female_heights) / len(female_heights) if female_heights else 0 print("Средний вес мальчиков:", avg_male_weight) print("Средний рост девушек:", avg_female_height) print("Самый высокий ученик:", tallest_student["имя"]) if __name__ == "__main__": main()

Объяснение кода:

  1. Мы определяем список students, который содержит информацию об учениках.
  2. Создаем пустые списки male_weights и female_heights для хранения весов мальчиков и ростов девушек соответственно.
  3. Используя цикл for, мы проходим по каждому ученику в списке students.
  4. Внутри цикла мы проверяем пол ученика. Если это мальчик, его вес добавляется в список male_weights, иначе его рост добавляется в список female_heights.
  5. Мы также проверяем, является ли текущий ученик самым высоким, сравнивая его рост с ростом текущего самого высокого ученика. Если текущий ученик оказывается выше, мы обновляем tallest_student.
  6. После завершения цикла, вычисляем средний вес мальчиков и средний рост девушек, обрабатывая случаи, когда соответствующие списки пусты.
  7. Наконец, выводим на экран средний вес мальчиков, средний рост девушек и имя самого высокого ученика.

Убедитесь, что в списке students содержится корректная информация об учениках, и запустите код, чтобы получить требуемые результаты.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос