форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
2.5 KiB
2.5 KiB
Выполнение модульного задания 2
Голощапов Д.Е.,А-01-23
Задание
M2_7
-
С помощью текстового редактора создайте текстовый файл с некоторым именем, в котором будет 4 строки и на каждой строке будет по 3 числа, разделенных запятыми.
-
Запросите у пользователя и введите имя файла с данными для обработки. Обеспечьте вывод сообщения при вводе пустой строки и повторный ввод.
-
Введите данные из указанного файла и представьте их в виде списка.
-
Рассчитайте по введенным данным среднее значение синусов элементов списка.
-
Выведите рассчитанное значение на экран по шаблону: " По <число элементов в списке> элементам среднее синусов = <рассчитанное среднее>". При этом значение среднего должно быть округлено до двух знаков после точки.
Решение
>>> import math
>>> import os
>>> os.chdir("C:\\Users\\u115-12\\Desktop\\python-labs\\TEMA6")
>>> fname = input("Введите имя файла: ")
Введите имя файла: module.txt
>>> while fname == "":
... print("Имя не должно быть пустым.")
... fname = input('Введите имя файла: ')
...
...
>>> with open(fname, 'r') as f:
... list = []
... for line in f:
... numbers = line.strip().split(',') #убрал пробелы и переносы в начале и конце строки, и разбил строку на части по запятым
... list.extend([float(x) for x in numbers]) #добавил числа в общий список
...
...
>>>
>>> list
[1.0, 4.0, 5.0, 2.0, 7.0, 8.0, 2.0, 6.0, 4.0, 8.0, 9.0, 10.0]
>>> sin_sum = sum(math.sin(x) for x in list)
>>> sin_sum
2.4119215412992787
>>> average=sin_sum/len(list)
>>> average
0.2009934617749399
>>> print("По", len(list), "элементам среднее синусов =", round(average, 2))
По 12 элементам среднее синусов = 0.2