форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
5.3 KiB
5.3 KiB
Индивидуальное контрольное задание по теме 6
Коломейцев Дмитрий, А-02-23
Задание
M2_11
-
Запросите у пользователя и введите имя функции из библиотеки math для обработки данных.
-
Создайте кортеж с 20 случайными равномерно распределенными числами из диапазона значений от 11 до 40.
-
Напишите инструкцию создания списка, содержащего значения, равные результату вычисления заданной пользователем функции от соответствующих элементов кортежа.
-
Выведите кортеж и результирующий список в бинарный файл с любым именем.
-
Рассчитайте среднее значение разностей элементов списка, находящихся на соседних четных и нечетных позициях. Отобразите результат на экране.
Решение
>>> import os
>>> import random
>>> import pickle
>>> import math
>>> # 1) Запросите у пользователя и введите имя функции из библиотеки math для обработки данных.
>>>
>>> func_name = input("Введите имя функции из библиотеки math (например sqrt, sin, cos): ")
Введите имя функции из библиотеки math (например sqrt, sin, cos): sin
>>> func_name
'sin'
>>> if not hasattr(math, func_name):
... print(f"Функция '{func_name}' не найдена в библиотеке math")
... exit()
...
...
>>> func = getattr(math, func_name)
>>> func
<built-in function sin>
# 2) Создайте кортеж с 20 случайными равномерно распределенными числами из диапазона значений от 11 до 40.
kort = tuple(random.uniform(11, 40) for _ in range(20))
kort
(16.808827380882583, 13.328126034808443, 18.508365438743773, 38.400181739145395, 30.74396638844783, 37.02011460254017, 18.87968576156089, 22.394000025760057, 23.062018003376906, 11.323633616339949, 36.2506853914364, 19.48084169593707, 31.425343980568798, 35.03973794703552, 36.48310456868603, 23.14357758721929, 30.09328844881235, 27.45402353941273, 19.232678017829635, 20.59891162619639)
# 3) Напишите инструкцию создания списка, содержащего значения, равные результату вычисления заданной пользователем функции от соответствующих элементов кортежа.
result_list = [func(x) for x in kort]
result_list
[-0.8915989855595101, 0.6901927749569217, -0.33460918876777096, 0.6450356200195559, -0.6225211991234381, -0.6280129896135037, 0.030125281547794338, -0.3920431155680488, -0.877617606249215, -0.9466694226202514, -0.9925221451754105, 0.590183211747677, 0.009417305468679018, -0.4637460639640912, -0.9377197913088371, -0.9137534675198252, -0.9693664369267251, 0.7313575170189571, 0.3738180373474736, 0.9841005857350538]
# 4) Выведите кортеж и результирующий список в бинарный файл с любым именем.
with open('/home/s0ba4/mpei/python-labs/TEMA6/binary.bin', 'wb+') as fp1:
pickle.dump({'kortezh': kort, 'list': result_list}, fp1)
with open('/home/s0ba4/mpei/python-labs/TEMA6/binary.bin', 'rb+') as fp2:
pickle.load(fp2)
{'kortezh': (16.808827380882583, 13.328126034808443, 18.508365438743773, 38.400181739145395, 30.74396638844783, 37.02011460254017, 18.87968576156089, 22.394000025760057, 23.062018003376906, 11.323633616339949, 36.2506853914364, 19.48084169593707, 31.425343980568798, 35.03973794703552, 36.48310456868603, 23.14357758721929, 30.09328844881235, 27.45402353941273, 19.232678017829635, 20.59891162619639), 'list': [-0.8915989855595101, 0.6901927749569217, -0.33460918876777096, 0.6450356200195559, -0.6225211991234381, -0.6280129896135037, 0.030125281547794338, -0.3920431155680488, -0.877617606249215, -0.9466694226202514, -0.9925221451754105, 0.590183211747677, 0.009417305468679018, -0.4637460639640912, -0.9377197913088371, -0.9137534675198252, -0.9693664369267251, 0.7313575170189571, 0.3738180373474736, 0.9841005857350538]}
# 5) Рассчитайте среднее значение разностей элементов списка, находящихся на соседних четных и нечетных позициях. Отобразите результат на экране.
diffs = []
for i in range(0, len(result_list) - 1, 2):
if i + 1 < len(result_list):
diff = result_list[i] - result_list[i + 1]
diffs.append(diff)
if diffs:
avg_diff = sum(diffs) / len(diffs)
print(f"\nСреднее значение разностей элементов на соседних четных и нечетных позициях:")
print(f"{avg_diff:.4f}")
Среднее значение разностей элементов на соседних четных и нечетных позициях:
-0.5509