Статья Автор: Омарбек Нұр-Мұхаммед

Работа с данными

Загрузка JSON из файла в Python

Чтобы работать с JSON-данными в Python, нужно:

  1. Импортировать встроенный модуль json.

  2. Открыть файл с помощью open().

  3. Загрузить данные из файла в переменную Python с помощью json.load().



Основные операции с данными

Доступ к данным

Чтобы получить данные конкретного ученика или поле:



Перебор данных с помощью циклов

Для анализа всех учеников обычно используют цикл for:



Вычисления со списками оценок

Для работы со списком оценок одного ученика пригодятся встроенные функции Python:

  • sum(grades) — сумма всех оценок.

  • len(grades) — количество оценок.

  • max(grades) — максимальная оценка.

  • min(grades) — минимальная оценка.

  • sum(grades) / len(grades) — средняя арифметическая оценка.

Фильтрация данных (поиск по условию)

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



Практическая задача: Анализ успеваемости учеников

Условие

У вас есть JSON-файл students.json, содержащий данные об учениках в том же формате, что и в примере. Напишите программу на Python, которая выполнит следующие действия:

  1. Загрузит данные из файла students.json.

  2. Найдет и выведет имя и возраст ученика с самым высоким средним баллом. Если таких учеников несколько, выведите любого из них.

  3. Подсчитает и выведет количество учеников, у которых хотя бы одна оценка — "2" (двойка).

  4. Сформирует и выведет список имен учеников в возрасте 20 лет и старше, у которых средний балл выше 3.5.

Входные данные (файл students.json)

Используйте данные, которые вы предоставили.


Ожидаемый результат (примерный вывод)


Ученик с самым высоким средним баллом: Артем, 19 лет (средний балл: 5.0)
Количество учеников с хотя бы одной двойкой: 9
Ученики 20+ лет со средним баллом выше 3.5: ['Мария', 'Никита', 'Юлия']

Примечание: ваш результат может немного отличаться в зависимости от того, какого именно ученика вы выберете при одинаковом максимальном балле.

Рекомендации

  • Для вычисления среднего балла используйте сумму оценок, деленную на их количество.

  • Для проверки наличия двойки используйте оператор in (2 in student['grades']).

  • Для фильтрации учеников по возрасту и среднему баллу используйте генераторы списков или циклы с условиями.

  • Не забудьте обработать ситуацию, если списки оценок пусты (хотя в наших данных они не пустые).

Печать