Напишите программу, которая для заданного файла вычисляет следующие параметры:
- количество всех чисел;
- количество положительных чисел;
- минимальное число;
- максимальное число;
- сумма всех чисел;
- среднее арифметическое всех чисел с точностью до двух знаков после запятой.
Формат ввода
Пользователь вводит два имени файла.
Первый файл содержит произвольное количество чисел, разделённых пробелами и символами перевода строки
Формат вывода
Выведите статистику во второй файл в формате 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)