# Отчет по теме 4 Филиппова Евгения, А-01-23 ## 2. Стандартные функции. Находятся в модуле builtins, который становится доступным без импорта при запуске среды IDLE. 2.1. Функция round – округление числа с заданной точностью. ```py help(round) Help on built-in function round in module builtins: round(number, ndigits=None) Round a number to a given precision in decimal digits. The return value is an integer if ndigits is omitted or None. Otherwise the return value has the same type as the number. ndigits may be negative. round(123.456,1) 123.5 type(round(123.456,1)) round(123.456,0) 123.0 type(round(123.456,0)) round(123.456) 123 type(123) 2 ``` 2.2. Функция range – создание последовательности целых чисел с заданным шагом или, по умолчанию, с шагом 1. ```py gg=range(76,123,9) #генерирует числа, начиная с 76 и прибавляя 9, пока не достигнет числа, которое больше или равно 123 (правая граница включена не будет) type(gg) list(gg) #чтоб его увидеть, необходимо преобразовать в другой тип [76, 85, 94, 103, 112, 121] range(23) #функция создаст последовательность чисел от 0 до 22 включительно с шагом 1 range(0, 23) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22] ``` 2.3. Функция zip – создание общего объекта, элементами которого являются кортежи, составленные из элементов двух или более объектов-последовательностей. Длина результирующего объекта равна длине самого короткого объекта из двух аргументов функции. ```py qq=["Филиппова", "Анисенков", "Лазарев", "Подольский"] ff=zip(gg,qq) #образуется итерируемый объект, просмотреть без преобразования типа не получится ff type(ff) #количество элементов-кортежей в объекте определяется размерностью меньшего объекта tuple(ff) ((76, 'Филиппова'), (85, 'Анисенков'), (94, 'Лазарев'), (103, 'Подольский')) ff[1] #объект ff, возвращаемый функцией zip, является итератором. У итераторов нет метода __getitem__, который позволяет обращаться к элементам по индексу. Попытка сделать это вызовет ошибку TypeError. Traceback (most recent call last): File "", line 1, in ff[1] TypeError: 'zip' object is not subscriptable c= list(zip(gg, qq)) #для обращения по индексу можно преобразовать в другой тип c[0] (76, 'Филиппова') ``` 2.4. Функция eval – вычисление значения выражения, корректно записанного на языке Python и представленного в виде символьной строки. ```py fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156') коэффициент усиления=4 dan -136.0 ``` 2.5. Функция exec – чтение и выполнение объекта-аргумента функции. Этот объект должен представлять собой строку символов с совокупностью инструкций на языке Python. ```py exec(input('введите инструкции:')) введите инструкции:perem=-123.456;gg=round(abs(perem)+98,3) gg 221.456 ``` 2.6. Самостоятельно изучите и попробуйте применить функции abs, pow, max, min, sum, divmod, len, map. ```py abs(-5) #модуль 5 len('Длина строки') 12 max(2,3,4) 4 min(2,3,4) 2 pow(2,3) #степень 8 a=(5,10,7) sum(a) 22 list(map(lambda x: x*2, [1, 2, 3, 4])) #позволяет применить заданную функцию к каждому элементу итерируемого объекта [2, 4, 6, 8] divmod(7, 2) #возвращает результат целочисленного деления и остаток от деления в виде кортежа (3, 1) ``` ## 3. Функции из стандартного модуля math – совокупность разнообразных математических функций. ```py import math 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', 'fma', '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', 'sumprod', 'tan', 'tanh', 'tau', 'trunc', 'ulp'] help(math.factorial) Help on built-in function factorial in module math: factorial(n, /) Find n!. math.factorial(5) 120 math.sin(1.57) #из радиан в значение синуса 0.9999996829318346 math.acos(1) #из значения косинуса в радианы 0.0 math.degrees(1) #из радиан в градусы 57.29577951308232 math.exp(2) #e в степени 2 7.38905609893065 math.log(10) #натуральный логарифм по основанию e 2.302585092994046 math.log(8, 2) #логарифм 8 по основанию 2 3.0 math.log10(10) #логарифм 10 по основанию 10 1.0 math.sqrt(4) 2.0 math.ceil(2.3) #округление вверх 3 math.ceil(-2.3) -2 math.floor(2.3) #округление вниз 2 math.floor(-2.3) -3 math.pi 3.141592653589793 math.sin((2*math.pi/7)+math.exp(0.23)) 0.8334902641414562 ``` 4. Функции из модуля cmath – совокупность функций для работы с комплексными числами. ```py import cmath dir(cmath) ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'cos', 'cosh', 'e', 'exp', 'inf', 'infj', 'isclose', 'isfinite', 'isinf', 'isnan', 'log', 'log10', 'nan', 'nanj', 'phase', 'pi', 'polar', 'rect', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau'] cmath.sqrt(1.2-0.5j) #квадратный корень из комплексного числа (1.118033988749895-0.22360679774997896j) cmath.phase(1-0.5j) #расчета фазы -0.4636476090008061 ``` ## 5. Стандартный модуль random – совокупность функций для выполнения операций с псевдослучайными числами и выборками. ```py import random dir(random) ['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_ONE', '_Sequence', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_fabs', '_floor', '_index', '_inst', '_isfinite', '_lgamma', '_log', '_log2', '_os', '_parse_args', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', 'betavariate', 'binomialvariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'main', 'normalvariate', 'paretovariate', 'randbytes', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate'] help(random.seed) Help on method seed in module random: seed(a=None, version=2) method of random.Random instance Initialize internal state from a seed. The only supported seed types are None, int, float, str, bytes, and bytearray. None or no argument seeds from current time or from an operating system specific randomness source if available. If *a* is an int, all bits are used. For version 2 (the default), all of the bits are used if *a* is a str, bytes, or bytearray. For version 1 (provided for reproducing random sequences from older versions of Python), the algorithm for str and bytes generates a narrower range of seeds. # Установка seed для воспроизводимости результатов random.seed(42) #равномерное распределение в диапазоне [a, b] random.uniform(5,10) 5.125053776113335 #случайное целое число в диапазоне [a, b] random.randint(5,10) 7 num=[1,2,3,4,5] #перемешивание списка random.shuffle(num) print(num) [4, 3, 1, 5, 2] #случайный элемент из последовательности random.choice(num) 2 str=['a', 'b', 'c', 'd', 'e', 'f'] #случайная выборка из k элементов random.sample(str,3) ['d', 'b', 'f'] #равномерное распределение, возвращает число от 0.0 до 1.0 a=random.random() random_values.append(a) #нормальное распределение - gauss(mu, sigma) b=random.gauss(mu=0, sigma=1) random_values.append(b) #бета-распределение - betavariate(alpha, beta) # alpha > 0, beta > 0 c=random.betavariate(alpha=2, beta=5) random_values.append(c) #гамма-распределение - gammavariate(alpha, beta) # alpha > 0, beta > 0 g=random.gammavariate(alpha=2,beta=1) random_values.append(g) print(random_values) [0.6766994874229113, -0.2673374784971682, 0.33770203607050125, 0.2499045656863944] ``` ## 6. Функции из модуля time – работа с календарем и со временем. ```py import time dir(time) ['_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'altzone', 'asctime', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic', 'monotonic_ns', 'perf_counter', 'perf_counter_ns', 'process_time', 'process_time_ns', 'sleep', 'strftime', 'strptime', 'struct_time', 'thread_time', 'thread_time_ns', 'time', 'time_ns', 'timezone', 'tzname'] c1=time.time() #функция time возвращает время в секундах, прошедшее с начала эпохи, за которое обычно принимается 1.01.1970г. c1 1761552320.8137634 c2=time.time()-c1 #временной интервал в секундах, со времени ввода предыдущей инструкции c2 21.83978009223938 dat=time.gmtime() #вывод объектa класса struct_time, полной информации о текущем времени. Функция возвращает (UTC). Московское время MSK опережает UTC на 3 часа dat time.struct_time(tm_year=2025, tm_mon=10, tm_mday=27, tm_hour=8, tm_min=6, tm_sec=16, tm_wday=0, tm_yday=300, tm_isdst=0) dat.tm_mon 10 dat.tm_year 2025 dat.tm_mday 27 dat.tm_hour 8 dat.tm_min 6 dat.tm_sec 16 dat.tm_wday #День недели - четверг (дни недели: 0=понедельник, 1=вторник, 2=среда, 3=четверг, 4=пятница, 5=суббота, 6=воскресенье) 0 dat.tm_yday #День года - 300-й день в году (считая с 1 января = 1) 300 dat.tm_isdst #Летнее время - не действует (0 = зимнее время, 1 = летнее время, -1 = неизвестно) 0 time.localtime() #Получение местного времени time.struct_time(tm_year=2025, tm_mon=10, tm_mday=27, tm_hour=11, tm_min=11, tm_sec=37, tm_wday=0, tm_yday=300, tm_isdst=0) time.asctime() #Получение текущего времени, представление времени из кортежа в строку time.asctime() 'Mon Oct 27 11:12:15 2025 time.ctime() #Преобразование времени в секундах, прошедшего с начала эпохи, в строку 'Mon Oct 27 11:12:48 2025' time.sleep(3) #Прерывание работы программы на заданное время(3 секунды) time_tuple = (2025, 1, 2, 3, 4, 5, 6, 222, 0) time_obj = time.struct_time(time_tuple) time_obj time.struct_time(tm_year=2025, tm_mon=1, tm_mday=2, tm_hour=3, tm_min=4, tm_sec=5, tm_wday=6, tm_yday=222, tm_isdst=0) seconds = time.mktime(time_obj) #Преобразование времени из типа кортежа или struct_time в число секунд с начала эпохи seconds 1735776245.0 back_to_time = time.localtime(seconds) #Обратное преобразование back_to_time time.struct_time(tm_year=2025, tm_mon=1, tm_mday=2, tm_hour=3, tm_min=4, tm_sec=5, tm_wday=3, tm_yday=2, tm_isdst=0) ``` ## 7. Графические функции. ## Построение графиков ```py import pylab x=list(range(-3,55,4)) t=list(range(15)) pylab.plot(t,x) #Создание графика в оперативной памяти [] pylab.title('Первый график') Text(0.5, 1.0, 'Первый график') pylab.xlabel('время') Text(0.5, 0, 'время') pylab.ylabel('сигнал') Text(0, 0.5, 'сигнал') pylab.show() #Отображение графика на экране ``` ![](plo1.png) ```py X1=[12,6,8,10,7] X2=[5,7,9,11,13] pylab.plot(X1) [] pylab.plot(X2) [] pylab.show() ``` ![](ris2.png) ## Построение круговой диаграммы ```py region=['Центр','Урал','Сибирь','Юг'] #Метки для диаграммы naselen=[65,12,23,17]] #Значения для диаграммы pylab.pie(naselen,labels=region) #Создание диаграммы в памяти ([, , , ], [Text(-0.191013134139045, 1.0832885038559115, 'Центр'), Text(-0.861328292412156, -0.6841882582231001, 'Урал'), Text(0.04429273995539947, -1.0991078896938387, 'Сибирь'), Text(0.9873750693480946, -0.48486129194837324, 'Юг')]) pylab.show() #Отображение диаграммы ``` ![](ris3.png) ## Построение столбчатой диаграммы. ```py categories = ['A', 'B', 'C', 'D', 'F'] values = [3, 7, 8, 2, 1] pylab.bar(categories, values, color=['red', 'orange', 'yellow', 'green', 'blue'], alpha=0.7) pylab.title('Столбчатая диаграмма распределения по категориям') Text(0.5, 1.0, 'Столбчатая диаграмма распределения по категориям') pylab.xlabel('Категории') Text(0.5, 0, 'Категории') pylab.ylabel('Количество') Text(0, 0.5, 'Количество') pylab.grid(axis='y', alpha=0.75) pylab.show() ``` ![](ris4.png) ## Построение гистаграммы ```py grades = [85, 92, 78, 65, 90, 85, 88, 72, 95, 81, 85, 90, 78, 85, 92] pylab.hist(grades, bins=5, edgecolor='black', alpha=0.7, color='skyblue') (array([1., 1., 3., 5., 5.]), array([65., 71., 77., 83., 89., 95.]), ) pylab.title('Гистограмма распределения оценок') Text(0.5, 1.0, 'Гистограмма распределения оценок') pylab.xlabel('Оценки') Text(0.5, 0, 'Оценки') pylab.ylabel('Частота') Text(0, 0.5, 'Частота') pylab.grid(axis='y', alpha=0.75) pylab.show() ``` ![](ris5.png) ## 8. Модуль statistics. ```py # Данные для статистического анализа data = [23, 45, 67, 34, 89, 56, 72, 41, 58, 64, 39, 51, 47, 62, 55] import statistics mean_value = statistics.mean(data) #нахождение среднего mean_value 53.53333333333333 median_value = statistics.median(data) #нахождение медианы median_value 55 dat = [1, 1, 1, 2, 3, 4, 5, 6, 7] mode_value = statistics.mode(dat) #нахождение моды mode_value 1 ``` ## 9. Конец сеанса работы c IDLE.