From 614035593a6f7a65eeabab51a1b8177037feb360 Mon Sep 17 00:00:00 2001 From: Danil Date: Thu, 23 Oct 2025 21:09:08 +0300 Subject: [PATCH] =?UTF-8?q?report:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TEMA4/Ris1.png | Bin 0 -> 20051 bytes TEMA4/Ris2.png | Bin 0 -> 26210 bytes TEMA4/Ris3.png | Bin 0 -> 15503 bytes TEMA4/Ris4.png | Bin 0 -> 7589 bytes TEMA4/Ris5.png | Bin 0 -> 13037 bytes TEMA4/protocol.md | 396 +++++++++++++++++++++++++++++++++++++++++++++ TEMA4/protocol4.py | 299 ++++++++++++++++++++++++++++++++++ TEMA4/task.md | 51 ++++++ TEMA4/task.py | 35 ++++ 9 files changed, 781 insertions(+) create mode 100644 TEMA4/Ris1.png create mode 100644 TEMA4/Ris2.png create mode 100644 TEMA4/Ris3.png create mode 100644 TEMA4/Ris4.png create mode 100644 TEMA4/Ris5.png create mode 100644 TEMA4/protocol.md create mode 100644 TEMA4/protocol4.py create mode 100644 TEMA4/task.md create mode 100644 TEMA4/task.py diff --git a/TEMA4/Ris1.png b/TEMA4/Ris1.png new file mode 100644 index 0000000000000000000000000000000000000000..79a29739cf3229296765b3fc9d81c444261a2307 GIT binary patch literal 20051 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 z%0D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 literal 0 HcmV?d00001 diff --git a/TEMA4/Ris2.png b/TEMA4/Ris2.png new file mode 100644 index 0000000000000000000000000000000000000000..a975fc956af801686f40af5b55ec84f86132886a GIT binary patch literal 26210 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 literal 0 HcmV?d00001 diff --git a/TEMA4/Ris4.png b/TEMA4/Ris4.png new file mode 100644 index 0000000000000000000000000000000000000000..2f492e4e428ee3048e0e76efbf1a0cf4f8346488 GIT binary patch literal 7589 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 Lp0E7X`SxD`9%0<1 literal 0 HcmV?d00001 diff --git a/TEMA4/Ris5.png b/TEMA4/Ris5.png new file mode 100644 index 0000000000000000000000000000000000000000..a237adfa73ca28554e0ddd17c6937311c803d7fe GIT binary patch literal 13037 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 o +type(round(123.456,1)) + +round(123.456) +123 +type(round(123.456)) + +``` +## 2.2. Функция range – создание последовательности целых чисел с заданным шагом или, по умолчанию, с шагом 1. +``` +gg=range(76,123,9) +list(gg) +[76, 85, 94, 103, 112, 121] +a = range(23) +list(a) +[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22] +#значения от 0 до 23, шаг 1, границы 0 - 22 +``` +При подобной записи переменной a строится последовательность от 0 до конечного значения, указанного ранее, с базовым шагом 1. + +## 2.3. Функция zip – создание общего объекта, элементами которого являются кортежи, составленные из элементов двух или более объектов-последовательностей. +Создадим объект список и применим к нему функцию zip +``` +qq = ['Lazarev','Anisenkov','Fillipova','Jalnin'] +ff=zip(gg,qq) +tuple(ff) +((76, 'Lazarev'), (85, 'Anisenkov'), (94, 'Fillipova'), (103, 'Jalnin')) +``` +Стоит заметить, что объекты воздействуемые функцией zip не предполагают возможности обращения по индексу +## 2.4.Функция eval – вычисление значения выражения, корректно записанного на языке Python и представленного в виде символьной строки. +``` +fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156') +коэффициент усиления=5 +dan +``` +## 2.5.Функция exec – чтение и выполнение объекта-аргумента функции. +``` +exec(input('введите инструкции:')) +введите инструкции:perem=-123.456;gg=round(abs(perem)+98,3) +gg + +``` +## 2.6.Рассмотрим ряд прочих функций: +abs модуль заданного выражения или числа +pow возведение заданного числа в указанную степень +max находит максимальное из воозможных значений списка +min находит максимальное значение из возможных в списке +sum суммирует заданный набор чисел(элементы списка) +len выдает длину рассматриваемого объекта +map применяет заданную функцию к каждому элементу заданного объекта +divmod(с,d) проводит операцию вида (c//d,c%d) и выводит кортеж с полученными значениями +``` +abs(-36) + +pow(2,2) + +max([1,2,3,4,33,3,2,1,5,0]) + +min([1,2,3,4,33,3,2,1,5,0]) + +sum([1,2,3,4,33,3,2,1,5,0]) + +divmod(7,3) + +len([1,2,3,4,33,3,2,1,5,0]) + +o = [1,2,3,4,33,3,2,1,5,0] +def f(x): + return x*x*x +list(map(f,o)) +``` +### 3. Функции из стандартного модуля math +## Импортируем необходимую библеотеку +``` +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'] +``` +sin выдаёт синус аргумента в радианах +acos выдает арккосинус аргумента в радианах +degrees переводит число в радианах в градусы +radians переводит число в градусах в радианы +exp значение числа e, возведенного в степень указаную в аргументе +log считает натуральный логарифм числа +log10 считает десятичный логарифм числа +sqrt рассчет корня числа +ceil округление число вверх +floor округление число вниз +pi представление числа пи в питоне +``` +help(math.factorial) +Help on built-in function factorial in module math: +factorial(n, /) + Find n!. + +math.factorial(5) +120 +math.sin(1) +0.8414709848078965 +math.acos(1) +0.0 +math.degrees(36) +2062.648062470964 +math.radians(2062.648062470964) +36.00000000000001 +math.exp(2) +7.38905609893065 +math.log(100) +4.605170185988092 +math.log10(100) +2.0 +math.sqrt(100) +10.0 +math.ceil(58.3) +59 +math.floor(58.3) +58 +math.pi +3.141592653589793 +math.sin(((2*math.pi)/7 + math.exp(0.23))) +0.8334902641414562 +``` +### 4.Функции из модуля cmath +Импортируем и рассмотрим использование функций для работы с комплексными числами. +``` +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 +``` +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. +``` + +## random равномерно распределенное случайное число +``` +random.seed() +r = random.random() +r +0.7602265821504725 +``` +## uniform равномерно распределенное случайное число в диапазоне, заданном двумя аргументам +``` +a = random.uniform(1,3) +a +1.6506391388455899 +``` +## randint случайное целые число из заданного диапазона +``` +b = random.randint(1, 19) +b +8 +``` +## gauss нормально распределенное случайное число с средним равным первому аргументу и стандартным отклонением равным второму аргументу +``` +c = random.gauss() +c +-2.8896415965159985 +d = random.gauss(1,0) +d +1.0 + +d = random.gauss(1,1) + +d +0.05266125395944099 +``` +## choice случайный элемент из совокупности указанной в аргументе +``` +b =[2,3,1,2,3,4,6] +e = random.choice(b) +e +2 +``` +## shuffle случайная перестановка элементов списка в аргументе +``` +random.shuffle(b) +b +[3, 2, 2, 6, 3, 1, 4] +``` +## sample случайный выбор подмножества элементов из списка в первом аргументе +``` +k = random.sample(b,4) +k +[3, 2, 2, 4] +``` +## betavariate случайное число с бета-распределением +``` +p = random.betavariate(1,2) +p +0.48596997669197367 +``` +## gammavariate случайное число с гамма-распределением +``` +p = random.gammavariate(1,1) +p +1.2802780104125937 +``` +Создадим свой список с заданными в задании распределениями +``` +f = [ random.uniform(1,3), random.gauss(1,2), random.betavariate(2,2), random.gammavariate(2,3)] + +f +[2.247730869060465, 3.871209301585315, 0.39715861559850196, 3.959028762460888] +``` +### 6. Функции модуля time - работа с календарем и со временем +Изучим и применим методы из модуля time: + +time время в секундах,прошедшее с начала эпохи, за которое обычно принимается 01.01.1970г +gmtime объект класса struct_time, содержащий полную информацию о текущем времени: год (tm_year), месяц (tm_mon), день tm_mday) и т.д. +localtime получение «местного» времени +asctime преобразовывает представление времени из кортежа в строку +ctime преобразование времени в секундах,прошедшего с начала эпохи, в строку +sleep преостановка работы программы на заданное время в секундах +mktime преобразовает время из кортежа или struct_time в число секунд с начала эпохи. +``` +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() +c1 +1761161531.581906 +c2=time.time()-c1 +c2 +20.391149044036865 +dat=time.gmtime() +dat +time.struct_time(tm_year=2025, tm_mon=10, tm_mday=22, tm_hour=19, tm_min=33, tm_sec=7, tm_wday=2, tm_yday=295, tm_isdst=0) +dat.tm_mon +10 +dat.tm_year +2025 +dat.tm_hour +19 +dat.tm_min +33 +c1 = time.localtime +c1 + +c1 = time.localtime() +c1 +time.struct_time(tm_year=2025, tm_mon=10, tm_mday=22, tm_hour=22, tm_min=38, tm_sec=57, tm_wday=2, tm_yday=295, tm_isdst=0) +c2 = time.asctime(c1) +c2 +'Wed Oct 22 22:38:57 2025' +t1 = time.ctime() +t1 +'Wed Oct 22 22:44:33 2025' +time.sleep(2) +t2 = time.mktime(c1) +t2 +1761161937.0 +``` +### 7. Графические функции. +Произведем создание линейного графика,показывающего зависимость сигналов от времени +``` +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() +``` +![](Ris1.png) +Создадим два линейных графика на одном фоне. +``` +X1=[12,6,8,10,7] +X2=[5,7,9,11,13] +pylab.plot(X1) +[] +pylab.plot(X2) +[] +pylab.show() +``` +![](Ris2.png) +Произведем создание круговой диаграммы +``` +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) + +Cоздадим собственную гистограмму(по оси у приведена частота повторения значений,по оси х сами значения) +``` +a = [1,2,1,3,2,4,5,8,5,5,5,2,2,2,2,2] +pylab.hist(a,bins = 6) +(array([9., 1., 1., 4., 0., 1.]), array([1. , 2.16666667, 3.33333333, 4.5 , 5.66666667, + 6.83333333, 8. ]), ) +pylab.title('Гистограмма') +Text(0.5, 1.0, 'Гистограмма') +pylab.show() +``` +![](Ris4.png) + +Создадим собственную столбчатую диаграмму(x - категории, y - значения, относящиеся к конкретной категории) +``` +marks = ['BMW','Audi','Lada','Reno'] +cost = [20,17,5,10] +pylab.bar(marks,cost) + +pylab.title('Stolb') +Text(0.5, 1.0, 'Stolb') +pylab.show() +``` +![](Ris5.png) + +### 8. Модуль statistics +Импортировав модуль, изучим ряд функций данного модуля. +mean рассчёт среднего +median рассчёт медианы +mode рассчёт моды +stdev рассчёт среднеквадратического отклонения +variance рассчёт дисперсии +``` +import statistics +dir(statistics) +['Counter', 'Decimal', 'Fraction', 'LinearRegression', 'NormalDist', 'StatisticsError', '_SQRT2', '__all__', '__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_coerce', '_convert', '_decimal_sqrt_of_frac', '_exact_ratio', '_fail_neg', '_float_sqrt_of_frac', '_integer_sqrt_of_frac_rto', '_isfinite', '_kernel_invcdfs', '_mean_stdev', '_newton_raphson', '_normal_dist_inv_cdf', '_quartic_invcdf', '_quartic_invcdf_estimate', '_random', '_rank', '_sqrt_bit_width', '_sqrtprod', '_ss', '_sum', '_triweight_invcdf', '_triweight_invcdf_estimate', 'acos', 'asin', 'atan', 'bisect_left', 'bisect_right', 'correlation', 'cos', 'cosh', 'count', 'covariance', 'defaultdict', 'erf', 'exp', 'fabs', 'fmean', 'fsum', 'geometric_mean', 'groupby', 'harmonic_mean', 'hypot', 'isfinite', 'isinf', 'itemgetter', 'kde', 'kde_random', 'linear_regression', 'log', 'math', 'mean', 'median', 'median_grouped', 'median_high', 'median_low', 'mode', 'multimode', 'namedtuple', 'numbers', 'pi', 'pstdev', 'pvariance', 'quantiles', 'random', 'reduce', 'repeat', 'sin', 'sqrt', 'stdev', 'sumprod', 'sys', 'tan', 'tau', 'variance'] +a = [1,2,3,4,5,6,7,8,9,10,9,8,7,6,5,4,3,2,1] +statistics.mean(a) +5.2631578947368425 +statistics.median(a) +5 +b = [1,2,1,1,1,2,3,4,5,6,9] +statistics.mode(b) +1variance +c = statistics.stdev(a) +c +2.8253240770486627 +d = [1,2,3,2,1] +v = statistics.variance(d) +v +0.7 +``` \ No newline at end of file diff --git a/TEMA4/protocol4.py b/TEMA4/protocol4.py new file mode 100644 index 0000000..d23a740 --- /dev/null +++ b/TEMA4/protocol4.py @@ -0,0 +1,299 @@ +#Тема 4 <Лазарев Данил Вячеславович> +import os +os.chdir('C:\\Users\\Dannyan\\OneDrive\\Рабочий стол\\python-labs\\TEMA4\\') +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. + +2.Стандартные функции. +2.1 +round(123.456,1) +123.5 +round(123.456,0) +123.0 +type(round(123.456,0)) + +type(round(123.456,1)) + +round(123.456) +123 +type(round(123.456)) + +2.2 +gg=range(76,123,9) +list(gg) +[76, 85, 94, 103, 112, 121] +a = range(23) +list(a) +[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22] +#значения от 0 до 22, шаг 1, границы 0 - 22 +2.3 +qq = 'Lazarev' +ww = 'Anisenkov' +rr = 'Fillipova' +ee = 'Jalnin' +ff=zip(gg,qq) +tuple(ff) +((76, 'L'), (85, 'a'), (94, 'z'), (103, 'a'), (112, 'r'), (121, 'e')) +ff[1] +Traceback (most recent call last): + File "", line 1, in + ff[1] +TypeError: 'zip' object is not subscriptable +2.4 +fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156') +коэффициент усиления=5 +dan +-131.0 +2.5 +exec(input('введите инструкции:')) +введите инструкции:perem=-123.456;gg=round(abs(perem)+98,3) +gg +221.456 +2.6 +abs(-36) +36 +pow(2,2) +4 +max([1,2,3,4,33,3,2,1,5,0]) +33 +min([1,2,3,4,33,3,2,1,5,0]) +0 +sum([1,2,3,4,33,3,2,1,5,0]) +54 +divmod(7,3) +(2, 1) +len([1,2,3,4,33,3,2,1,5,0]) +10 +o = [1,2,3,4,33,3,2,1,5,0] +def f(x): + return x*x*x +list(map(f,o)) +[1, 8, 27, 64, 35937, 27, 8, 1, 125, 0] +3. Функции из стандартного модуля math +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) +0.8414709848078965 +math.acos(1) +0.0 +math.degrees(36) +2062.648062470964 +math.radians(2062.648062470964) +36.00000000000001 +math.exp(2) +7.38905609893065 +math.log(100) +4.605170185988092 +math.log10(100) +2.0 +math.sqrt(100) +10.0 +math.ceil(58.3) +59 +math.floor(58.3) +58 +math.pi +3.141592653589793 +math.sin(((2*math.pi)/7 + math.exp(0.23))) + +0.8334902641414562 +4.Функции из модуля cmath +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 +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. +random.seed() +r = random.random() +r +0.7602265821504725 +a = random.uniform(1,3) + +a +1.6506391388455899 + +b = random.randint(1, 19) + +b +8 + +c = random.gauss() + +c +-2.8896415965159985 + +d = random.gauss(1,0) + +d +1.0 + +d = random.gauss(1,1) + +d +0.05266125395944099 + +b =[2,3,1,2,3,4,6] + +e = random.choice(b) + +e +2 + +random.shuffle(b) + +b +[3, 2, 2, 6, 3, 1, 4] + +k = random.sample(b,4) + +k +[3, 2, 2, 4] + +p = random.betavariate(1,2) + +p +0.48596997669197367 + +p = random.gammavariate(1,1) + +p +1.2802780104125937 + +Создадим свой список с заданными распределениями +f = [ random.uniform(1,3), random.gauss(1,2), random.betavariate(2,2), random.gammavariate(2,3)] + +f +[2.247730869060465, 3.871209301585315, 0.39715861559850196, 3.959028762460888] +6. Функции модуля time - работа с календарем и со временем +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() +c1 +1761161531.581906 +c2=time.time()-c1 +c2 +20.391149044036865 +dat=time.gmtime() +dat +time.struct_time(tm_year=2025, tm_mon=10, tm_mday=22, tm_hour=19, tm_min=33, tm_sec=7, tm_wday=2, tm_yday=295, tm_isdst=0) +dat.tm_mon +10 +dat.tm_year +2025 +dat.tm_hour +19 +dat.tm_min +33 +c1 = time.localtime +c1 + +c1 = time.localtime() +c1 +time.struct_time(tm_year=2025, tm_mon=10, tm_mday=22, tm_hour=22, tm_min=38, tm_sec=57, tm_wday=2, tm_yday=295, tm_isdst=0) +c2 = time.asctime(c1) +c2 +'Wed Oct 22 22:38:57 2025' +t1 = time.ctime() +t1 +'Wed Oct 22 22:44:33 2025' +time.sleep(2) +t2 = time.mktime(c1) +t2 +1761161937.0 +7. Графические функции. +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() +X1=[12,6,8,10,7] +X2=[5,7,9,11,13] +pylab.plot(X1) +[] +pylab.plot(X2) +[] +pylab.show() +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() +a = [1,2,1,3,2,4,5,8,5,5,5,2,2,2,2,2] +pylab.hist(a,bins = 6) +(array([9., 1., 1., 4., 0., 1.]), array([1. , 2.16666667, 3.33333333, 4.5 , 5.66666667, + 6.83333333, 8. ]), ) +pylab.title('Гистограмма') +Text(0.5, 1.0, 'Гистограмма') +pylab.show() +marks = ['BMW','Audi','Lada','Reno'] +cost = [20,17,5,10] +pylab.bar(marks,cost) + +pylab.title('Stolb') +Text(0.5, 1.0, 'Stolb') +pylab.show() +8. Модуль statistics. +import statistics +dir(statistics) +['Counter', 'Decimal', 'Fraction', 'LinearRegression', 'NormalDist', 'StatisticsError', '_SQRT2', '__all__', '__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_coerce', '_convert', '_decimal_sqrt_of_frac', '_exact_ratio', '_fail_neg', '_float_sqrt_of_frac', '_integer_sqrt_of_frac_rto', '_isfinite', '_kernel_invcdfs', '_mean_stdev', '_newton_raphson', '_normal_dist_inv_cdf', '_quartic_invcdf', '_quartic_invcdf_estimate', '_random', '_rank', '_sqrt_bit_width', '_sqrtprod', '_ss', '_sum', '_triweight_invcdf', '_triweight_invcdf_estimate', 'acos', 'asin', 'atan', 'bisect_left', 'bisect_right', 'correlation', 'cos', 'cosh', 'count', 'covariance', 'defaultdict', 'erf', 'exp', 'fabs', 'fmean', 'fsum', 'geometric_mean', 'groupby', 'harmonic_mean', 'hypot', 'isfinite', 'isinf', 'itemgetter', 'kde', 'kde_random', 'linear_regression', 'log', 'math', 'mean', 'median', 'median_grouped', 'median_high', 'median_low', 'mode', 'multimode', 'namedtuple', 'numbers', 'pi', 'pstdev', 'pvariance', 'quantiles', 'random', 'reduce', 'repeat', 'sin', 'sqrt', 'stdev', 'sumprod', 'sys', 'tan', 'tau', 'variance'] +a = [1,2,3,4,5,6,7,8,9,10,9,8,7,6,5,4,3,2,1] +statistics.mean(a) +5.2631578947368425 +statistics.median(a) +5 +b = [1,2,1,1,1,2,3,4,5,6,9] +statistics.mode(b) +1 +c = statistics.stdev(a) +c +2.8253240770486627 +d = [1,2,3,2,1] +v =statistics.variance(d) +v +0.7 diff --git a/TEMA4/task.md b/TEMA4/task.md new file mode 100644 index 0000000..01d114a --- /dev/null +++ b/TEMA4/task.md @@ -0,0 +1,51 @@ +### Общее контрольное задание по теме 4 +Лазарев Данил, А-01-23 + +### Задание +Реализовать, записать в текстовый файл и проанализировать результаты последовательности инструкций, выполняющих следующие действия: + +1)Напишите и исполните единое выражение, реализующее последовательное выполнение следующих операций: вычисление фазы комплексного числа 0.2+0.8j, округление результата до двух знаков после запятой, умножение полученного значения на 20, получение кортежа из двух значений: округленное вниз значение от деления результата на 3 и остатка от этого деления. + +2)Создайте объект класса struct_time с временными параметрами для текущего московского времени. Создайте строку с текущим часом и минутами. + +3)Создайте список с элементами – названиями дней недели. Сделайте случайную выборку из этого списка с тремя днями недели. + +4)Напишите инструкцию случайного выбора числа из последовательности целых чисел от 14 до 32 с шагом 3. + +5)Сгенерируйте нормально распределенное число N с математическим ожиданием 15 и стандартным отклонением 4 и округлите его до целого значения. Создайте список с N элементами – случайно выбранными буквами латинского алфавита. + +6)Напишите инструкцию для определения временного интервала в минутах, прошедшего с момента предыдущего (из п.2) определения временных параметров. +import cmath, math, random, time + +### Решение +``` +#1 +res = divmod(math.floor(round(cmath.phase(0.2+0.8j), 2) * 20), 3) +print(res) + +#2 +Msk = time.localtime() +print(Msk) + +stroka = Msk.tm_hour , Msk.tm_min +print(stroka) + +#3 +Week = ["Пн","Вт","Ср","Чт","Пт","Сб","Вс"] +print(random.sample(Week, 3)) + +#4 +row = [14, 17, 20, 23, 26, 29, 32] +hm = random.choice(row) +print(hm) + +#5 +G = round(random.gauss(15, 4)) +Alph = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] +Spisok = random.sample(Alph, G) +print(Spisok) + +#6 +minute = time.localtime().tm_min - Msk.tm_min +print(minute) +``` \ No newline at end of file diff --git a/TEMA4/task.py b/TEMA4/task.py new file mode 100644 index 0000000..e6d41f0 --- /dev/null +++ b/TEMA4/task.py @@ -0,0 +1,35 @@ +import cmath, math, random, time + +# 1. +res = divmod(math.floor(round(cmath.phase(0.2+0.8j), 2) * 20), 3) +print(res) + +# 2. +Msk = time.localtime() +print(Msk) + +stroka = Msk.tm_hour , Msk.tm_min +print(stroka) + +# 3. +Week = ["Пн","Вт","Ср","Чт","Пт","Сб","Вс"] +print(random.sample(Week, 3)) + +# 4. +row = [14, 17, 20, 23, 26, 29, 32] +hm = random.choice(row) +print(hm) + +# 5. + +G = round(random.gauss(15, 4)) + +Alph = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] + +Spisok = random.sample(Alph, G) + +print(Spisok) + +# 6. +minute = time.localtime().tm_min - Msk.tm_min +print(minute)