ответвлено от main/python-labs
ikz done
Этот коммит содержится в:
Двоичные данные
TEMA6/binary.bin
Двоичные данные
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
|
||||
```
|
||||
Ссылка в новой задаче
Block a user