форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
48 строки
2.5 KiB
Markdown
48 строки
2.5 KiB
Markdown
# Выполнение модульного задания 2
|
|
|
|
Голощапов Д.Е.,А-01-23
|
|
|
|
# Задание
|
|
|
|
M2_7
|
|
|
|
1) С помощью текстового редактора создайте текстовый файл с некоторым именем, в котором будет 4 строки и на каждой строке будет по 3 числа, разделенных запятыми.
|
|
|
|
2) Запросите у пользователя и введите имя файла с данными для обработки. Обеспечьте вывод сообщения при вводе пустой строки и повторный ввод.
|
|
|
|
3) Введите данные из указанного файла и представьте их в виде списка.
|
|
|
|
4) Рассчитайте по введенным данным среднее значение синусов элементов списка.
|
|
|
|
5) Выведите рассчитанное значение на экран по шаблону: " По <число элементов в списке> элементам среднее синусов = <рассчитанное среднее>". При этом значение среднего должно быть округлено до двух знаков после точки.
|
|
|
|
# Решение
|
|
|
|
>>> 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 |