K. Файловая статистика 2.0

Напишите программу, которая для заданного файла вычисляет следующие параметры:

  • количество всех чисел;
  • количество положительных чисел;
  • минимальное число;
  • максимальное число;
  • сумма всех чисел;
  • среднее арифметическое всех чисел с точностью до двух знаков после запятой.

Формат ввода

Пользователь вводит два имени файла.
Первый файл содержит произвольное количество чисел, разделённых пробелами и символами перевода строки

Формат вывода

Выведите статистику во второй файл в формате JSON.

Ключи значений задайте соответственно:

  • count — количество всех чисел;
  • positive_count — количество положительных чисел;
  • min — минимальное число;
  • max — максимальное число;
  • sum — сумма всех чисел;
  • average — среднее арифметическое всех чисел с точностью до двух знаков после запятой.

Пример

Ввод

# Пользовательский ввод:
numbers.txt
statistics.json

# Содержимое файла numbers.txt
1 2 3 4 5
-5 -4 -3 -2 -1
10 20
20 10

Вывод

# Содержимое файла statistics.json
{
    "count": 14,
    "positive_count": 9,
    "min": -5,
    "max": 20,
    "sum": 60,
    "average": 4.29
}

Решение

Задача на вывод словаря с помощью json.dump(). Читаем данные удобным способом, создаем словарь и заполняем его нужными значениями. Выводим словарь в json-файл.

Посмотреть код

Решение

Python
import json

file_in = input().strip()
file_out = input().strip()

with open(file_in, encoding="UTF-8") as file:
    numbers = [int(number) for number in file.read().split()]

stat = {
    "count": (length := len(numbers)),
    "positive_count": len([number for number in numbers if number > 0]),
    "min": min(numbers),
    "max": max(numbers),
    "sum": (total := sum(numbers)),
    "average": round(total / length, 2),
}

with open(file_out, "w", encoding="UTF-8") as file:
    json.dump(stat, file, ensure_ascii=False, indent=4)
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии