From 02d79c29f7ac5720907550ec08d1e98e257c4caf Mon Sep 17 00:00:00 2001 From: root Date: Sun, 5 Oct 2025 15:49:05 +0300 Subject: [PATCH] report completed --- TEMA3/report.md | 326 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 326 insertions(+) diff --git a/TEMA3/report.md b/TEMA3/report.md index 221723a..9b88188 100644 --- a/TEMA3/report.md +++ b/TEMA3/report.md @@ -349,17 +349,343 @@ signal2 ```py stroka='Система автоматического управления' 'автомат' in stroka #Наличие подстроки в строке +True 'ку' in ['ку','-']*3 #Наличие контекста в списке +True 'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl') #Наличие контекста в кортеже +False ``` ### 6.4.Подстановка значений в строку с помощью оператора «%» ```py # Пример 1. stroka='Температура = %g %s %g' +stroka +'Температура = %g %s %g' + stroka % (16,' меньше ',25) +'Температура = 16 меньше 25' # Пример 2. Вставка с использованием данных из словаря. stroka='Температура = %(zn1)g %(sravn)s %(zn2)g' +stroka +'Температура = %(zn1)g %(sravn)s %(zn2)g' + stroka % {'zn1':16,'sravn':' меньше ','zn2':25} + +'Температура = 16 меньше 25' +``` + +## 7. Оператор присваивания +### 7.1. Обычное присваивание значения переменной (=) +```py +zz=-12 +zz +-12 +``` +### 7.2.Увеличение значения переменной на заданную величину (+=) или уменьшение (-=) +```py +zz+=5 # Значение zz увеличивается на 5 +zz +-7 +zz-=3 # Значение уменьшается на 3 +zz +-10 +``` +Для последовательностей операция (+=) означает конкатенацию текущего значения объекта с +заданным дополнением. +```py +stroka='Система' +stroka +'Система' +stroka+=' регулирования' + stroka +'Система регулирования' +``` +### 7.3. Умножение текущего значения переменной на заданную величину (*=) или деление (/=) +```py +zz/=2 +zz +-5.0 +zz*=5 +zz +-25.0 +``` +Для строк операция (*=) означает повторение текущего значения объекта заданное число раз. +Попробуйте эту операцию самостоятельно. +### 7.4.Операции деления +```py +zz//=4 +zz +-7.0 + + zz +-25.0 + zz//=4 + zz +-7.0 + +-25//4 +-7 +25//4 +6 + +zz=-5 +zz%= 2 +zz +1 + +zz*=2 +zz +2 + +zz**=6 +zz +64 +``` + +### 7.5. Множественное присваивание + +```py +w=v=10 # Переменным присваивается одно и то жезначение +>>> w +10 +>>> v +10 +n1,n2,n3=(11,-3,'all') #Значения переменных берутсяиз кортежа +>>> n1 +11 +>>> n2 +-3 +>>> n3 +'all' +``` +Можно использовать множественное присваивание с разными типами данных - Python поддерживает распаковку любых итерируемых объектов. Вот примеры для каждого типа: + +Использование строки: +```py +a,b,c="ABC" +a +'A' +b +'B' +c +'C' +``` +Работает. Строка разбивается на отдельные символы. + +Использование списка: +```py +x,y,z=[10,20,30] +x +10 +y +20 +z +30 +``` +Работает. Элементы списка распаковываются по порядку. + +Использование словаря: +```py +p,q,r={'key1':1,'key2':2,'key3':3} +p +'key1' +q +'key2' +r +'key3' +``` +Работает, но распаковываются только КЛЮЧИ, не значения. Это важная особенность словарей - при итерации по умолчанию используются ключи. + +Для распаковки значений нужно использовать: + +```py +p,q,r={'key1':1,'key2':2,'key3':3}.values() +p +1 +q +2 +r +3 +``` +Использование множества: +```py +m,n,o={100,200,300} +m +200 # Порядок может быть другим! +n +100 +o +300 +``` +Работает, но порядок НЕ ГАРАНТИРОВАН - множества неупорядочены, поэтому значения могут распаковаться в любой последовательности. + +## 8. Логические операции +Используются при создании логических выражений, дающих в результате вычисления +значения True или False. + +### 8.1. Операции сравнения +Равенство (==), не равно (!=), меньше (<), больше (>), меньше или +равно (<=), больше или равно (>=) – придумайте примеры этих операций. Сравните ранее +созданные переменные w и v. +### 8.2. Проверка наличия заданного элемента в последовательности +Или во множестве, а также +проверка наличия ключа в словаре (in). + Операции с множеством: +```py +mnoz1={'pen','book','pen','iPhone','table','book'} +'book' in mnoz1 +True +'cap' in mnoz1 +False +``` +Операции со словарем: +```py +dic1={'Saratov':145, 'Orel':56, 'Vologda':45} +'Vologda' in dic1 +True +'Pskov' in dic1 +False +56 in dic1.values() +True +dct1={'Institut':['AVTI','IEE','IBB'],'Depart':['UII','PM','VMSS','MM'],'gruppa': ['A-01-15','A-02-15']} +'UII' in dct1['Depart'] +True +dct1['Depart'][1] == 'MM' +False +``` +### 8.3. Создание больших логических выражений с использованием соединительных слов +Логическое «И» (and), логическое «ИЛИ» (or), логическое «НЕ» (not). +```py +a=17 +b=-6 +(a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1) +True +(a=b) and (a==b) and not (a!=b) +False + +``` +Придумайте самостоятельно еще 2-3 примера сложных логических выражений. +### 8.4.Проверка ссылок переменных на один и тот же объект (is). +```py +w=v=10 #При таком присваивании переменные ссылаются на один и тот же объект в оперативной памяти +w is v +True +w1=['A','B'] +v1=['A','B'] +w1 is v1 +False #Они задавались отдельно друг от друга +``` +в оперативной памяти +```py + w is v + w1=['A','B'] + v1=['A','B'] +``` + +## 9. Операции с объектами, выполняемые с помощью методов. +```py +stroka='Микропроцессорная система управления' #получение полного списка атрибутов +dir(stroka) +['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__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', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] +``` +### 9.1. Методы для работы со строками. +```py +stroka.find('пр') #Возвращает номер позиции первого вхождения указанного контекста или значение -1 +5 +stroka.count("с") #Подсчет числа вхождений строки “с” в stroka +4 +stroka.replace(' у',' автоматического у') +'Микропроцессорная система автоматического управления' +spis22=stroka.split(' ') #Возвращает список подстрок, между которыми в строке стоит заданный разделитель +spis22 +['Микропроцессорная', 'система', 'управления'] +stroka.upper() #Возвращает строку со всеми заглавными буквами +'МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ' +stroka3=" ".join(spis22) #Возвращает строку, собранную из элементов списка +stroka3 +'Микропроцессорная система управления' +stroka3.partition("с") #Возвращает кортеж с результатами поиска «с» слева +('Микропроце', 'с', 'сорная система управления') +stroka3.rpartition("с") #Возвращает кортеж с результатами поиска «с» справа +('Микропроцессорная си', 'с', 'тема управления') +strk1='Момент времени {}, значение = {}' +strk1.format(1,89.7) +'Момент времени 1, значение = 89.7' +strk2='Момент времени {1}, значение = {0}:{2}' +strk2.format(36.7,2,'норма!') +'Момент времени 2, значение = 36.7:норма!' +strk3='Момент времени {num}, значение = {znch}' +strk3.format(znch=89.7,num=2) +'Момент времени 2, значение = 89.7' +``` +### 9.2. Методы для работы со списками. +```py +spsk=[1,'a',2,'b',3,'c',4] +dir(spsk) #отображение атрибутов +['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'] +spsk.pop(2) #удаляет из списка элемент с индексом 2 и выводит его +2 +spsk +[1, 'a', 'b', 3, 'c', 4] +spsk.append('c') #добавление в конец списка 'c' +spsk +[1, 'a', 'b', 3, 'c', 4, 'c'] +spsk.insert(2,'a') #вставляет 'a' на позицию с индексом 2 +spsk +[1, 'a', 'a', 'b', 3, 'c', 4, 'c'] +spsk.count('a') #считает количество 'a' в списке +2 +``` +### 9.3. Методы для работы с кортежами. +```py +kortezh = (1, 'a', 'b', 3, 'c', 4) +kortezh.count(3) #считает количество 3 в списке +1 +kortezh.index('b') #выводит с каким индексом в кортеже 'b' +2 +kortezh + (5, 6) #добавляет 5, 6 в кортеж +(1, 'a', 'b', 3, 'c', 4, 5, 6) +``` +### 9.4. Методы для работы со словарями. +```py +slvr = {'a': 1, 'b': 2, 'c': 3, 'd': 4} +slvr.keys() #получение ключей словаря +dict_keys(['a', 'b', 'c', 'd']) +slvr.values() #получение значений словаря +dict_values([1, 2, 3, 4]) +slvr.items() #получение пар ключ-значение из словаря +dict_items([('a', 1), ('b', 2), ('c', 3), ('d', 4)]) +slvr.get('b') #получение значений по ключу +2 +slvr.update({'e': 5, 'f': 6}) #добавление двух пар в словарь +slvr +{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6} +slvr.pop('c') #удаление по ключу +3 +slvr +{'a': 1, 'b': 2, 'd': 4, 'e': 5, 'f': 6} +``` +### 9.5. Методы для работы с множествами. +```py +mng={1,'a',2,'b',3,'c',4} +mng.add('d') #добавление в множество mng элемента 'd' +mng +{1, 2, 3, 4, 'b', 'd', 'a', 'c'} +mng.remove(3) #удаление из множества mng элемента 3 +mng +{1, 2, 4, 'b', 'd', 'a', 'c'} +mng1={5,'e',6} +mng2=mng.union(mng1) #объединение множеств mng и mng1 +mng2 +{1, 2, 4, 5, 6, 'a', 'e', 'b', 'd', 'c'} +mng3=mng2.intersection(mng) #пересечение множеств mng и mng2, получили mng так как mng входит в mng2 +mng3 +{1, 2, 4, 'a', 'b', 'd', 'c'} +mng4=mng2.difference(mng) #разность множеств mng и mng2, получили mng1, так как mng+mng1=mng2 +mng4 +{'e', 5, 6} ``` ```py