Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

4.5 KiB

Тест по модулю 2. Вариант 11

Степанов Артём, А-02-23

Задание 1

Запросите у пользователя и введите имя функции из библиотеки math для обработки данных.

Решение

>>> import math
>>> print(dir(math))
    ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'cbrt', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'exp2', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc', 'ulp']
>>> func = input("Введите функцию из модуля math: ")
    Введите функцию из модуля math: sqrt

Задание 2

Создайте кортеж с 20 случайными равномерно распределенными числами из диапазона значений от 11 до 40.

Решение

>>> import random
>>> kort = tuple([random.uniform(11, 40) for x in range(20)])
>>> kort
    (13.660375880487978, 29.453518221390016, 24.21546392982809, 32.433379995697656, 21.24020821353613, 34.55631343191126, 20.992169057649782, 15.230930622059098, 30.89172248312571, 14.615811177459697, 26.211389931676, 23.703136667771552, 28.591909389652102, 24.289697762108663, 16.39261625404772, 12.65385640234007, 35.225116803637945, 39.90736378649565, 38.30743305242752, 34.56895014626229)
>>> len(kort)
    20

Задание 3

Напишите инструкцию создания списка, содержащего значения, равные результату вычисления заданной пользователем функции от соответствующих элементов кортежа.

Решение

>>> sps = []
>>> for i in range(len(kort)):
...     sps = sps + [eval("math.{f}({num})".format(f = func, num = kort[i]))]
...
>>> sps
    [3.695994572572852, 5.427109564159362, 4.920921044868337, 5.695031167227942, 4.608710037910405, 5.87846182533418, 4.581721189427592, 3.9026824905517357, 5.558032249198066, 3.823063062187138, 5.119706039576491, 4.868586721808656, 5.347140300165323, 4.928457949714968, 4.04877960057691, 3.557225941986265, 5.935075130412247, 6.317227539553697, 6.18929988386631, 5.879536558799706]

Задание 4

Выведите кортеж и результирующий список в бинарный файл с любым именем.

Решение

>>> import os, pickle
>>> os.chdir(input("Введите полный путь к текущему рабочему каталогу: "))
    Введите полный путь к текущему рабочему каталогу: C:\\Users\\u206-02\\Desktop\\StepanovAV\\python-labs\\TEMA6
>>> os.getcwd()
    'C:\\Users\\u206-02\\Desktop\\StepanovAV\\python-labs\\TEMA6'
>>> filename = "binary.bin"
>>> fp = open(filename, "wb")
>>> pickle.dump(kort, fp)
>>> pickle.dump(sps, fp)
>>> fp.close()
>>> print("Данные сохранены в файл с именем:", filename)
    Данные сохранены в файл с именем: binary.bin

Задание 5

Рассчитайте среднее значение разностей элементов списка, находящихся на соседних четных и нечетных позициях. Отобразите результат на экране.

Решение

>>> sumCht = 0; sumNecht = 0
>>> for i in range(len(sps) - 2):
...     if i % 2 == 0:
...         sumCht = sumCht + (sps[i] - sps[i + 2])
...     else:
...         sumNecht = sumNecht + (sps[i] - sps[i + 2])
...
>>> sredCht = sumCht / (len(sps) // 2)
>>> sredNecht = sumNecht / (len(sps) // 2 - 1)
>>> print("Среднее значение разностей четных элементов списка:", sredCht)
    Среднее значение разностей четных элементов списка: -0.2493305311293458
>>> print("Среднее значение разностей нечетных элементов списка:", sredNecht)
    Среднее значение разностей нечетных элементов списка: -0.05026966607114937