Dmitry Kolomeytsev 3 недель назад
Родитель 39ce197f22
Сommit 8af6392e99

Двоичные данные
TEMA6/binary.bin

Двоичный файл не отображается.

@ -4,4 +4,83 @@
## Задание ## Задание
M2_11
1) Запросите у пользователя и введите имя функции из библиотеки math для обработки данных.
2) Создайте кортеж с 20 случайными равномерно распределенными числами из диапазона значений от 11 до 40.
3) Напишите инструкцию создания списка, содержащего значения, равные результату вычисления заданной пользователем функции от соответствующих элементов кортежа.
4) Выведите кортеж и результирующий список в бинарный файл с любым именем.
5) Рассчитайте среднее значение разностей элементов списка, находящихся на соседних четных и нечетных позициях. Отобразите результат на экране.
## Решение ## Решение
```py
>>> 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
```
Загрузка…
Отмена
Сохранить