diff --git a/TEMA3/report.md b/TEMA3/report.md index 18af1ea..918e640 100644 --- a/TEMA3/report.md +++ b/TEMA3/report.md @@ -5,7 +5,7 @@ ## Тема 3. Операции с объектами ## Задание 2 Преобразование простых базовых типов объектов. -### 2.1 +### 2.1 Преобразование в логический тип с помощью функции bool(<Объект>). ``` >>> logiz1=bool(56) >>> logiz2=bool(0) @@ -21,7 +21,7 @@ >>> type(logiz4) ``` -### 2.2 +### 2.2 2.2. Преобразование в целое десятичное число объекта с заданной системой счисления осуществ-ляется с помощью функции int(<Объект>[,<Система счисления, в которой определен объ-ект>]). По умолчанию система счисления принимается десятичной. ``` >>> tt1=int(198.6) #Отбрасывается дробная часть >>> tt2=int("-76") @@ -40,6 +40,9 @@ Traceback (most recent call last): File "", line 1, in ValueError: invalid literal for int() with base 10: '98.76' +``` +Функция int() не может преобразовать строку с числом с плавающей точкой, из-за чего и возникла ошибка +``` >>> flt1=float(789) >>> flt2=float(-6.78e2) >>> flt3=float("Infinity") @@ -53,7 +56,7 @@ inf >>> flt4 -inf ``` -### 2.3 +### 2.3 Преобразование десятичных чисел в другие системы счисления ``` >>> hh=123 >>> dv1=bin(hh) @@ -75,7 +78,7 @@ inf 123 ``` ## Задание 3.Изучим преобразования более сложных базовых типов объектов -### 3.1 +### 3.1 Преобразование в строку символов с помощью функции str(<Объект>). ``` >>> strk1=str(23.6) >>> strk2=str(logiz3) @@ -93,7 +96,7 @@ inf >>> strk5 "{'A': 1, 'B': 2, 'C': 9}" ``` -### 3.2 +### 3.2 Преобразование элементов объекта в список с помощью функции list(<Объект>). ``` >>> spis2=list((124,236,-15,908)) >>> spis3=list({"A":1,"B":2,"C":9}) @@ -107,7 +110,7 @@ inf >>> spis_val [1, 2, 9] ``` -### 3.3 +### 3.3 3.3. Преобразование элементов объектов в кортеж с помощью функции tuple(<Объект>). ``` >>> kort7=tuple('Строка символов') >>> kort8=tuple(spis2) @@ -119,7 +122,7 @@ inf >>> kort9 ('A', 'B', 'C') ``` -### 3.4 +### 3.4 Удаление объектов. ``` >>> del strk5, kort8 >>> strk5, kort8 @@ -130,6 +133,16 @@ NameError: name 'strk5' is not defined. Did you mean: 'strk1'? Traceback (most recent call last): File "", line 1, in NameError: name 'kort8' is not defined. Did you mean: 'kort7'? +>>> my_fio = "Махнов Г.А." +>>> list_fio = list(my_fio) +>>> list_fio +['М', 'а', 'х', 'н', 'о', 'в', ' ', 'Г', '.', 'А', '.'] +>>> tuple_fio = tuple(list_fio) +>>> tuple_fio +('М', 'а', 'х', 'н', 'о', 'в', ' ', 'Г', '.', 'А', '.') +>>> new_str_fio = "".join(tuple_fio) +>>> new_str_fio +'Махнов Г.А.' ``` ## Задание 4 Арифмитические операции ### 4.1 Сложение и вычитание (+ и -) @@ -143,12 +156,12 @@ NameError: name 'kort8' is not defined. Did you mean: 'kort7'? >>> 14-56.7+89 46.3 ``` -### 4.2 +### 4.2 Умножение (*) ``` >>> -6.7*12 -80.4 ``` -### 4.3 +### 4.3 Деление (/). ``` >>> -234.5/6 -39.083333333333336 @@ -158,7 +171,7 @@ NameError: name 'kort8' is not defined. Did you mean: 'kort7'? >>> a 3.9555555555555557 ``` -### 4.4 +### 4.4 Деление с округлением вниз (//). ``` >>> b=178//45 >>> c=-24.6//12.1 @@ -168,14 +181,14 @@ NameError: name 'kort8' is not defined. Did you mean: 'kort7'? >>> bc 3 ``` -### 4.5 +### 4.5 Получение остатка от деления (%). ``` >>> 148%33 16 >>> 12.6%3.8 1.2000000000000002 ``` -### 4.6 +### 4.6 Возведение в степень (**). ``` >>> 14**3 2744 @@ -203,21 +216,30 @@ TypeError: unsupported operand type(s) for //: 'complex' and 'int' (14.4+6j) ``` ## Задание 5 Операции с двоичными представлениями целых чисел -### 5.1 +### 5.1 Двоичная инверсия (~). ``` >>> dv1 = 9 >>> dv2 = ~dv1 >>> dv2 -10 ``` -### 5.2 +~1001 + 0110 + + 1111 = 2^4 +-1001 + 0110 = ~1001 + +~x = (2^N - 1 - x) = -(x+1) +Т.к. двоичная инверсия преобразует число по формуле -(x+1), где x - заданное число, то при задании числа 9 двоичная инверсия преобразует его в -10 +### 5.2 Двоичное «И» (&) ``` >>> 7&9 1 >>> 7&8 0 ``` -### 5.3 +### 5.3 Двоичное «ИЛИ» (|) ``` >>> 7|9 15 @@ -226,12 +248,12 @@ TypeError: unsupported operand type(s) for //: 'complex' and 'int' >>> 14|5 15 ``` -### 5.4 +### 5.4 5.4. Двоичное «исключающее ИЛИ»(^) ``` >> 14^5 11 ``` -### 5.5 +### 5.5 Сдвиг двоичного представления на заданное число разрядов влево (<<) или вправо (>>) с допол-нением нулями, соответственно справа или слева. ``` >>> h=14 >>> g = h<<2 @@ -247,7 +269,7 @@ TypeError: unsupported operand type(s) for //: 'complex' and 'int' 3 ``` ## Задание 6. Операции при работе с последовательностями (строками, списками, кортежами). -### 6.1 +### 6.1 Объединение последовательностей (конкатенация)(+) ``` >>> 'Система ' +'регулирования' 'Система регулирования' @@ -256,7 +278,7 @@ TypeError: unsupported operand type(s) for //: 'complex' and 'int' >>> ('abc','de','fg')+('hi','jkl') ('abc', 'de', 'fg', 'hi', 'jkl') ``` -### 6.2 +### 6.2 Повторение (*) ``` >>> 'ля-'*5 'ля-ля-ля-ля-ля-' @@ -272,7 +294,7 @@ TypeError: unsupported operand type(s) for //: 'complex' and 'int' >>> signal2 (0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0) ``` -### 6.3 +### 6.3 Проверка наличия заданного элемента в последовательности (in) ``` >>> stroka='Система автоматического управления' >>> 'автомат' in stroka @@ -282,7 +304,7 @@ True >>> 'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl') False ``` -### 6.4 +### 6.4 Подстановка значений в строку с помощью оператора «%» #### Пример 1 ``` >>> stroka='Температура = %g %s %g' @@ -298,13 +320,13 @@ False 'Температура = 16 меньше 25' ``` ## Задание 7 Оператор присваивания -### 7.1 +### 7.1 Обычное присваивание значения переменной (=) ``` >>> zz = -12 >>> zz -12 ``` -### 7.2 +### 7.2 Увеличение значения переменной на заданную величину (+=) или уменьшение (-=) ``` >>> zz+=5 >>> zz @@ -317,7 +339,7 @@ False >>> stroka 'Система регулирования' ``` -### 7.3 +### 7.3 Умножение текущего значения переменной на заданную величину (*=) или деление (/=) ``` >>> zz/=2 >>> zz @@ -326,7 +348,7 @@ False >>> zz -25.0 ``` -### 7.4 +### 7.4 Операции деления с округлением вниз (//=), получения остатка от деления (%=) и возведе-ния в степень(**=) ``` >>> zz//=5 >>> zz @@ -339,7 +361,7 @@ False >>> zz 8.0 ``` -### 7.5 +### 7.5 Множественное присваивание ``` >>> w=v=10 >>> w,v @@ -360,8 +382,9 @@ False >>> w,v ({1, 2, 3}, {1, 2, 3}) ``` -## Задание 8 Операции сравнение: равенство (==), не равно (!=), меньше (<), больше (>), меньше или равно (<=), больше или равно (>=) – придумайте примеры этих операций. Сравните ранее созданные переменные w и v. -### 8.1 +## Задание 8 8. Логические операции – при создании логических выражений, дающих в результате вычисле-ния значения True или False. + +### 8.1 Операции сравнение: равенство (==), не равно (!=), меньше (<), больше (>), меньше или равно (<=), больше или равно (>=) – придумаем примеры этих операций. Сравним ранее созданные переменные w и v. ``` >>> 1==1 True @@ -378,7 +401,7 @@ True >>> w==v True ``` -### 8.2 +### 8.2 Проверка наличия заданного элемента в последовательности или во множестве, а также проверка наличия ключа в словаре (in). ``` >>> mnoz1={'pen','book','pen','iPhone','table','book'} >>> 'book' in mnoz1 @@ -398,7 +421,7 @@ True >>> dct1['Depart'][1] == 'MM' False ``` -### 8.3 +### 8.3 Создание больших логических выражений с использованием соединительных слов: логиче-ское «И» (and), логическое «ИЛИ» (or), логическое «НЕ» (not). ``` >>> a=17 >>> b=-6 @@ -406,7 +429,7 @@ False True >>> (a=b) and (a==b) ``` -### 8.4 +### 8.4 Проверка ссылок переменных на один и тот же объект (is). ``` >>> w=v=10 >>> w is v @@ -417,13 +440,13 @@ True False ``` w1 и v1 не являются одним и тем же объектом в памяти, поэтому is выдал ответ False -## Задание 9 +## Задание 9 Операции с объектами, выполняемые с помощью методов. ``` >>> stroka='Микропроцессорная система управления' >>> dir(stroka) ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] ``` -### 9.1 +### 9.1 Методы для работы со строками. ``` >>> stroka.find('пр') 5 @@ -451,7 +474,7 @@ w1 и v1 не являются одним и тем же объектом в п >>> strk3.format(znch=89.7,num=2) 'Момент времени 2, значение = 89.7' ``` -### 9.2 +### 9.2 Методы для работы со списками. ``` >>> spsk = [23,56,"str", 10, True] >>> dir(spsk) @@ -463,7 +486,7 @@ w1 и v1 не являются одним и тем же объектом в п >>> spsk [23, 56, 'a', 10, True, 'c'] ``` -### 9.3 +### 9.3 Самостоятельно создадим кортеж и изучим применение его методов. ``` >>> my_cort = (1, "hi", 13, 5,86) >>> dir(my_cort) @@ -473,7 +496,7 @@ w1 и v1 не являются одним и тем же объектом в п >>> my_cort.index("hi") 1 ``` -### 9.4 +### 9.4 Также самостоятельно изучим методы словарей и множеств ``` >>> my_dict = {"math":13, "physics": 11, "history": 15} >>> dir(my_dict) diff --git a/TEMA3/test.md b/TEMA3/test.md new file mode 100644 index 0000000..53543e7 --- /dev/null +++ b/TEMA3/test.md @@ -0,0 +1,55 @@ +# Тест по модулю 1 + +Махнов Георгий, А-01-23 + +## Задание + +M1_10 +1) Какова роль компилятора в среде Python? Чем отличаются файлы с расширением .pyc от файлов с расширением .py? + +2) Напишите инструкцию, создающую список со словами из данного предложения. Подсчитайте и отобразите на экране число слов. + +3) Создайте кортеж с именами 10 любых студентов вашей группы. Напишите инструкцию, доказывающую, что создан объект именно требуемого типа. Напишите инструкцию отображения списка атрибутов созданного объекта. + +4) Превратите кортеж во множество. Подсчитайте число элементов множества и отобразите на экране с помощью формата по шаблону: "Во множестве ХХ студентов". + +5) Напишите инструкцию, создающую строку из элементов списка из п.2. Отобразите строку на экране. + + +## Решение + +1) Компилятор в Питоне преобразует исходный код в байт-код, который может быть выполнен компьютером и помогает повысить скорость и производительность. Файл .pyc отличается от файла .py тем, что в последнем содержится читаемый человеком код, и служит для разработки, в то время как .pyc содержит в себе байт-код и служит для ускорения запуска программы. + +2) +``` +>>> sttr = "Напишите инструкцию, создающую список со словами из данного предложения." +>>> list_sttr = list(sttr.split()) +>>> list_sttr +['Напишите', 'инструкцию,', 'создающую', 'список', 'со', 'словами', 'из', 'данного', 'предложения.'] +>>> len(list_sttr) +9 +``` +3) +``` +>>> fio_tuple = ('Дима', 'Данил','Паша','Лиза','Георгий','Катя','Максим','Вадим','Артем','Никита') +>>> fio_tuple +('Дима', 'Данил', 'Паша', 'Лиза', 'Георгий', 'Катя', 'Максим', 'Вадим', 'Артем', 'Никита') +>>> type(fio_tuple) + +>>> dir(fio_tuple) +['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index'] +``` +4) +``` +>>> list_tuple = set(fio_tuple) +>>> list_tuple +{'Паша', 'Максим', 'Артем', 'Данил', 'Никита', 'Лиза', 'Дима', 'Вадим', 'Катя', 'Георгий'} +>>> print("Во множестве ", len(list_tuple), " студентов") +Во множестве 10 студентов +``` + +5) +``` +>>> print(" ".join(list_sttr)) +Напишите инструкцию, создающую список со словами из данного предложения. +``` \ No newline at end of file diff --git a/TEMA4/Ris1.png b/TEMA4/Ris1.png new file mode 100644 index 0000000..770d3b7 Binary files /dev/null and b/TEMA4/Ris1.png differ diff --git a/TEMA4/Ris2.png b/TEMA4/Ris2.png new file mode 100644 index 0000000..b6b0166 Binary files /dev/null and b/TEMA4/Ris2.png differ diff --git a/TEMA4/image-1.png b/TEMA4/image-1.png new file mode 100644 index 0000000..0c7e136 Binary files /dev/null and b/TEMA4/image-1.png differ diff --git a/TEMA4/image-2.png b/TEMA4/image-2.png new file mode 100644 index 0000000..567abed Binary files /dev/null and b/TEMA4/image-2.png differ diff --git a/TEMA4/image.png b/TEMA4/image.png new file mode 100644 index 0000000..dcd2db5 Binary files /dev/null and b/TEMA4/image.png differ diff --git a/TEMA4/report.md b/TEMA4/report.md new file mode 100644 index 0000000..6cd1703 --- /dev/null +++ b/TEMA4/report.md @@ -0,0 +1,297 @@ +# Отчет по теме 4 + +Махнов Георгий, А-01-23 + +## Тема 4. Встроенные функции + +### 2.1. Функция round – округление числа с заданной точностью. +``` +>>> 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 +>>> round(123.456,0) +123.0 +>>> type(round(123.456,0)) + +``` +Ответы различаются тем, что в первом вызове мы округляем до 1 знака после запятой, во втором вызове мы округляем до 0 знака после запятой (т.е. до целого числа) +``` +>>> round(123.456) +123 +>>> type(round(123.456)) + +``` + +### 2.2. Функция range – создание последовательности целых чисел с заданным шагом или, по умолчанию, с шагом 1. +``` +>>> gg=range(76,123,9) +>>> gg +range(76, 123, 9) +>>> list(gg) +[76, 85, 94, 103, 112, 121] +>>> list(range(23)) +[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22] +``` +Получается объект с целыми числами с шагом 1 от 0 до 22. + +### 2.3. Функция zip – создание общего объекта, элементами которого являются кортежи, составленные из элементов двух или более объектов-последовательностей (zip – застежка-«молния») +``` +>>> qq = ['Махнов','Лазарев','Коваленко','Иванов'] +>>> ff=zip(gg,qq) +>>> ff + +>>> tuple(ff) +((76, 'Махнов'), (85, 'Лазарев'), (94, 'Коваленко'), (103, 'Иванов')) +>>> ff[0] +Traceback (most recent call last): + File "", line 1, in +TypeError: 'zip' object is not subscriptable +``` +В кортеже содержится 4 элемента, так как zip() объединяет 2 объекта по длине меньшего из них (в нашем случае qq, 4 объекта). + +### 2.4. Функция eval – вычисление значения выражения, корректно записанного на языке Python и представленного в виде символьной строки. +``` +>>> fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156') +коэффициент усиления=13.48 +>>> dan +-88.6 +``` +### 2.5. Функция exec – чтение и выполнение объекта-аргумента функции. + +``` +>>> exec(input('введите инструкции:')) +введите инструкции:perem=-123.456;gg=round(abs(perem)+98,3) +>>> gg +221.456 +``` + +### 2.6. Самостоятельно изучите и попробуйте применить функции abs, pow, max, min, sum, divmod, len, map. +``` +>>> abs(-13) +13 +>>> pow(-13, 2) +169 +>>> max(-13, 12) +12 +>>> min(-13, 12) +-13 +>>> sum([-13, 12]) +-1 +>>> divmod(13, 3) +(4, 1) +>>> list(map(int, [14.3, 15.6])) +[14, 15] +``` + +## 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', '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!. + + Raise a ValueError if x is negative or non-integral. + +>>> math.factorial(5) +120 +>>> from math import * +>>> sin(pi/2) +1.0 +>>> acos(0.5) +1.0471975511965979 +>>> degrees(13) +744.8451336700703 +>>> radians(pi/2) +0.027415567780803774 +>>> exp(3) +20.085536923187668 +>>> log(4) +1.3862943611198906 +>>> log(4,2) +2.0 +>>> log10(4) +0.6020599913279624 +>>> ceil(3.1) +4 +>>> ceil(-13.3) +-13 +>>> floor(-13.3) +-14 +>>> pi +3.141592653589793 +>>> sin(2*pi/(7+exp(0.23))) +0.6895048136223223 +``` +### 4. Функции из модуля cmath – совокупность функций для работы с комплексными числами. +``` +>>> import cmath +>>> from cmath import * +>>> 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'] +>>> sqrt(1.2-0.5j) +(1.118033988749895-0.22360679774997896j) +>>> cmath.phase(1-0.5j) +-0.4636476090008061 +``` +Начните с импорта модуля + import cmath +Отобразите атрибуты модуля, показывающие содержащиеся в нем функции: + dir(cmath) +Изучите функцию для извлечения квадратного корня из комплексного числа + cmath.sqrt(1.2-0.5j) +и функцию расчета фазы + cmath.phase(1-0.5j) + +### 5. Стандартный модуль random – совокупность функций для выполнения операций с псевдослу-чайными числами и выборками. +``` +>>> from random import * +>>> dir(random) +['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__text_signature__'] +>>> help(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() +0.9886498397075144 +>>> uniform(1, 4) +2.780130303169699 +>>> randint(1, 5) +5 +>>> gauss(1, 4) +-1.8813369397077917 +>>> lst = [1,4,3,5,6] +>>> shuffle(lst) +>>> print(lst) +[4, 6, 3, 1, 5] +>>> sample(lst, 3) +[3, 1, 5] +>>> betavariate(1, 3) +0.13265164490875223 +>>> gammavariate(1,3) +6.693731601234578 +>>> [uniform(1,3), gauss(1,3), betavariate(1,3), gammavariate(1,3)] +[2.727738971034954, 0.6065095462022692, 0.454597873888903, 1.6408773406150745] +``` + +### 6. Функции из модуля time – работа с календарем и со временем. +``` +>>> from time import * +>>> dir(time) +['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__text_signature__'] +>>> c1 = time() +>>> c1 +1760084354.1531947 +>>> c2=time()-c1 +>>> c2 +7.051163673400879 +>>> gmtime() +time.struct_time(tm_year=2025, tm_mon=10, tm_mday=10, tm_hour=8, tm_min=19, tm_sec=40, tm_wday=4, tm_yday=283, tm_isdst=0) +>>> dat = gmtime() +>>> dat.tm_mon +10 +>>> dat.tm_hour, dat.tm_min +(8, 20) +>>> localtime() +time.struct_time(tm_year=2025, tm_mon=10, tm_mday=10, tm_hour=11, tm_min=21, tm_sec=3, tm_wday=4, tm_yday=283, tm_isdst=0) +>>> asctime(localtime()) +'Fri Oct 10 11:21:55 2025' +>>> ctime(c1) +'Fri Oct 10 11:19:14 2025' +>>> sleep(3) +>>> mktime(localtime()) +1760084701.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() +``` +![alt text](image.png) +``` +>>> X1=[12,6,8,10,7] +>>> X2=[5,7,9,11,13] +>>> pylab.plot(X1) +[] +>>> pylab.plot(X2) +[] +>>> pylab.show() +``` +![alt text](Ris1.png) +``` +>>> region=['Центр','Урал','Сибирь','Юг'] +>>> naselen=[65,12,23,17] +>>> pylab.pie(naselen,labels=region) +([, , , ], [Text(-0.1910130855889933, 1.083288512416601, 'Центр'), Text(-0.8613283319035216, -0.6841882085072037, 'Урал'), Text(0.04429273729355889, -1.0991078898011077, 'Сибирь'), Text(0.9873752043868569, -0.4848610169543564, 'Юг')]) +>>> pylab.show() +``` +![alt text](Ris2.png) +``` +>>> pylab.hist(X1, bins = 5) +(array([2., 1., 0., 1., 1.]), array([ 6. , 7.2, 8.4, 9.6, 10.8, 12. ]), ) +>>> pylab.show() +``` +![alt text](image-1.png) +``` +>>> values = [13,14,10,18] +>>> categories = ['A', 'B', 'C', 'D'] +>>> pylab.bar(categories, values) + +>>> pylab.show() +``` +![alt text](image-2.png) + +### 8. Самостоятельно изучите состав статистического модуля statistics. Попробуйте применить не менее 3-х функций из этого модуля. + +``` +>>> import statistics +>>> statistics + +>>> dir(statistics) +['Decimal', 'Fraction', 'StatisticsError', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_coerce', '_convert', '_counts', '_exact_ratio', '_fail_neg', '_find_lteq', '_find_rteq', '_isfinite', '_ss', '_sum', 'bisect_left', 'bisect_right', 'collections', 'groupby', 'harmonic_mean', 'math', 'mean', 'median', 'median_grouped', 'median_high', 'median_low', 'mode', 'numbers', 'pstdev', 'pvariance', 'stdev', 'variance'] +>>> lst = [1,4,3,5,6,7,83,5,63,5,78,12,5,7,1,4,19] +>>> mean(lst) +18.11764705882353 +>>> median(lst) +5 +>>> mode(lst) +5 +``` \ No newline at end of file diff --git a/TEMA4/task.md b/TEMA4/task.md new file mode 100644 index 0000000..601171b --- /dev/null +++ b/TEMA4/task.md @@ -0,0 +1,49 @@ +# Общее контрольное задание по теме 4 + +Махнов Георгий, А-01-23 + +## Задание + +• Напишите и исполните единое выражение, реализующее последовательное выполнение следующих операций: вычисление фазы комплексного числа 0.2+0.8j, округление результата до двух знаков после запятой, умножение полученного значения на 20, получение кортежа из двух значений: округленное вниз значение от деления результата на 3 и остатка от этого деления. +• Создайте объект класса struct_time с временными параметрами для текущего московского времени. Создайте строку с текущим часом и минутами. +• Создайте список с элементами – названиями дней недели. Сделайте случайную выборку из этого списка с тремя днями недели. +• Напишите инструкцию случайного выбора числа из последовательности целых чисел от 14 до 32 с шагом 3. +• Сгенерируйте нормально распределенное число N с математическим ожиданием 15 и стан-дартным отклонением 4 и округлите его до целого значения. Создайте список с N элементами – случайно выбранными буквами латинского алфавита. +• Напишите инструкцию для определения временного интервала в минутах, прошедшего с момента предыдущего (из п.2) определения временных параметров. + + + +## Решение + +``` +>>> from math import * +>>> from cmath import * +>>> from time import * +>>> from random import * +>>> import string +>>> divmod(round(phase(0.2+0.8j))*20, 3) +(6, 2) +>> struct_time = localtime() +>>> struct_time +time.struct_time(tm_year=2025, tm_mon=10, tm_mday=10, tm_hour=11, tm_min=57, tm_sec=56, tm_wday=4, tm_yday=283, tm_isdst=0) +>>> str_time = asctime(struct_time) +>>> str_time +'Fri Oct 10 11:57:56 2025' +>>> lst = ["понедельник", "вторник", "среда", "четверг", "пятница", "суббота", "воскресенье"] +>>> sample(lst) +>>> sample(lst, 3) +['вторник', 'четверг', 'понедельник'] +>>> lst = list(range(14,32,3)) +>>> choice(lst) +14 +>>> choice(lst) +20 +>>> N = round(gauss(15, 4)) +>>> N +13 +>>> abc_list = sample(list(string.ascii_letters), N) +>>> abc_list +['b', 'y', 's', 'a', 'm', 'U', 'A', 'u', 'X', 'o', 'k', 'Q', 't'] +>>> (localtime().tm_hour - struct_time.tm_hour)*60 - struct_time.tm_min + localtime().tm_min +18 +``` \ No newline at end of file