# Отчёт по теме 3. Операция с объектами Выполнил Огарков Илья, А-03-23 ## 1. Начало работы Создание текстового файла ```report.md``` ## 2. Преобразование простых базовых типов объектов **2.1. Преобразование в логический тип с помощью функции bool(<Объект>)** ```python logiz1=bool(56) logiz2=bool(0) logiz3=bool("Beta") logiz4=bool("") logiz1,logiz2,logiz3,logiz4 (True, False, True, False) ``` **2.2. Преобразование в целое десятичное число объекта с заданной системой счисления** ```python tt1=int(198.6) tt1 198 tt2=int("-76") tt2 -76 tt3=int("B",16);tt3 11 tt4=int("71",8);tt4 57 tt5=int("98.76");tt5 ``` ### Преобразование целых чисел или строк символов в вещественное число ```python flt1=float(789);flt1 789.0 flt2=float(-6.78e2) flt2 -678.0 flt3=float("Infinity");flt3 inf flt4=float("-inf");flt4 -inf ``` **2.3. Преобразование десятичных чисел в другие системы счисления** ```python hh=123 dv1=bin(hh);dv1 '0b1111011' vos1=oct(hh);vos1 '0o173' shs1=hex(hh);shs1 '0x7b' int(dv1,2) 123 int(vos1,8) 123 int(shs1,16) 123 ``` ## 3. Изучение преобразования более сложных базовых типов объектов **3.1. Преобразование в строку символов с помощью функции str** ```python strk1=str(23.6) strk2=str(logiz3);strk2 'True' strk3=str(["A","B","C"]);strk3 "['A', 'B', 'C']" strk4=str(("A","B","C"));strk4 "('A', 'B', 'C')" strk5=str({"A":1,"B":2,"C":9});strk5 "{'A': 1, 'B': 2, 'C': 9}" ``` **3.2. Преобразование элементов объекта в список с помощью функции list** ```python spis1=list("Строка символов");spis1 ['С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в'] spis2=list((124,236,-15,908));spis2 [124, 236, -15, 908] spis3=list({"A":1,"B":2,"C":9});spis3 ['A', 'B', 'C'] spis3_values = list({"A":1,"B":2,"C":9}.values());spis3_values [1, 2, 9] ``` **3.3. Преобразование элементов объектов в кортеж с помощью функции tuple** ```python kort7=tuple('Строка символов');kort7 ('С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в') kort8=tuple(spis2);kort8 (124, 236, -15, 908) kort9=tuple({"A":1,"B":2,"C":9});kort9 ('A', 'B', 'C') ``` **3.4. Удаление объектов** ```python del strk5, kort8 strk5;kort8 Traceback (most recent call last): File "", line 1, in strk5;kort8 NameError: name 'strk5' is not defined. Did you mean: 'strk1'? familiya = "Ogarkov IA" familiya = list(familiya);familiya ['O', 'g', 'a', 'r', 'k', 'o', 'v', ' ', 'I', 'A'] familiya = tuple(familiya);familiya ('O', 'g', 'a', 'r', 'k', 'o', 'v', ' ', 'I', 'A') familiya = str(familiya);familiya "('O', 'g', 'a', 'r', 'k', 'o', 'v', ' ', 'I', 'A')" ``` ## 4. Арифметические операции **4.1. Сложение и вычитание (+ и -)** ```python 12+7+90 109 5.689e-1 - 0.456 0.11289999999999994 23.6+54 77.6 14-56.7+89 46.3 ``` **4.2. Умножение (*)** ```python -6.7*12 -80.4 ``` **4.3. Деление** ```python -234.5/6 -39.083333333333336 a=178/45;a 3.9555555555555557 ``` **4.4. Деление с округлением вниз** ```python b = 178//45 b 3 c=-24.6//12.1;c -3.0 ``` **4.5. Получение остатка от деления (%)** ```python 148%33 16 12.6%3.8 1.2000000000000002 ``` **4.6. Возведение в степень (**)** ```python 14**3 2744 e=2.7**3.6;e 35.719843790663525 ``` ## 5. Операции с двоичными представлениями целых чисел **5.1. Двоичная инверсия (~)** ```python dv1=9 dv2=~dv1;dv2 -10 bin(dv2);bin(dv1) '-0b1010' '0b1001' ``` **5.2. Двоичное «И» (&)** ```python bin(7&9) '0b1' bin(7&8) '0b0' ``` **5.3. Двоичное «ИЛИ» (|)** ```python bin(7|9 ) '0b1111' bin(7|8) '0b1111' bin(14|5) '0b1111' ``` **5.4. Двоичное «исключающее ИЛИ»(^)** ```python bin(14^5) '0b1011' 14^5 11 ``` **5.5. Сдвиг двоичного представления на заданное число разрядов влево (<<) или вправо (>>) с дополнением нулями, соответственно справа или слева** ```python h=14 g=h<<2 g1=h>>1 g2=h>>2 bin(g2) '0b11' bin(h) '0b1110' bin(g) '0b111000' bin(g1) '0b111' # Число A: 1011001 (7 знаков) = 89 в десятичной a = 0b1011001 # Число B: 11011010 (8 знаков) = 218 в десятичной b = 0b11011010 print(f"a = {a} (binary: {bin(a)})") print(f"b = {b} (binary: {bin(b)})") ``` ## 6. Операции при работе с последовательностями (строками, списками, кортежами) **6.1. Объединение последовательностей (конкатенация)(+)** ```python 'Система '+'регулирования' 'Система регулирования' ['abc','de','fg']+['hi','jkl'] ['abc', 'de', 'fg', 'hi', 'jkl'] ('abc','de','fg')+('hi','jkl') ('abc', 'de', 'fg', 'hi', 'jkl') ``` **6.2. Повторение (*)** ```python 'ля-'*5 'ля-ля-ля-ля-ля-' ['ку','-']*3 ['ку', '-', 'ку', '-', 'ку', '-'] ('кис','-')*4 ('кис', '-', 'кис', '-', 'кис', '-', 'кис', '-') signal1=[0]*3+[1]*99 signal1 [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] signal2=(0,)*3+(1,)*5+(0,)*7 signal2 (0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0) ``` **6.3. Проверка наличия заданного элемента в последовательности (in)** ```python stroka='Система автоматического управления' 'автомат' in stroka True 'ку' in ['ку','-']*3 True 'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl') False ``` **6.4. Подстановка значений в строку с помощью оператора «%»** ```python stroka='Температура = %g %s %g' stroka % (16,' меньше ',25); stroka 'Температура = 16 меньше 25' stroka='Температура = %(zn1)g %(sravn)s %(zn2)g' stroka % {'zn1':16,'sravn':' меньше ','zn2':25} 'Температура = 16 меньше 25' ``` ## 7. Оператор присваивания **7.1. Обычное присваивание значения переменной (=)** ```python zz=12 zz 12 ``` **7.2. Увеличение значения переменной на заданную величину (+=) или уменьшение (-=)** ```python zz=12 zz 12 zz+=5;zz 17 zz-=3;zz 14 stroka='Система' stroka+=' регулирования';stroka 'Система регулирования' ``` **7.3. Умножение текущего значения переменной на заданную величину (*=) или деление (/=)** ```python zz/=2;zz 7.0 zz*=5;zz 35.0 ``` **7.5. Множественное присваивание** ```python w;v 10 10 n1,n2,n3=(11,-3,'all');n1;n2;n3 11 -3 'all' n1,n2,n3="Str" n1;n2;n3 'S' 't' 'r' n1,n2,n3=[1,2,3];n1;n2;n3 1 2 3 n1,n2,n3={1:"one",2:"two",3:"three"};n1;n2;n3 1 2 3 n1,n2,n3 = (1,2,3);n1;n2;n3 1 2 3 ``` ## 8. Логические операции – при создании логических выражений, дающих в результате вычисления значения True или False **8.1. Операции сравнение** ```python w>v False ``` **8.2. Проверка наличия заданного элемента в последовательности или во множестве, а также проверка наличия ключа в словаре (in)** ```python mnoz1={'pen','book','pen','iPhone','table','book'} 'book' in mnoz1 True 'cap' in mnoz1 False 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)** ```python a=17 b=-6 (a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1) True ``` **8.4. Проверка ссылок переменных на один и тот же объект (is)** ```python w=v=10 w is v True w1=['A','B'] v1=['A','B'] w1 is v1 False w1,v1=['A','B'] ;w1 is v1 False ``` ## 9. Операции с объектами, выполняемые с помощью методов ```python 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. Методы для работы со строками** ```python stroka.find('пр') 5 stroka.count("с") 4 stroka.replace(' у',' автоматического у') 'Микропроцессорная система автоматического управления' spis22=stroka.split(' ') spis22 ['Микропроцессорная', 'система', 'управления'] stroka.upper() 'МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ' stroka3=" ".join(spis22) stroka3 'Микропроцессорная система управления' stroka3.partition("с") ('Микропроце', 'с', 'сорная система управления') stroka3.rpartition("с") ('Микропроцессорная си', 'с', 'тема управления') strk1='Момент времени {}, значение = {}' 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. Методы для работы со списками** ```python spsk = [1,2,3,4,5] spsk.pop(2) 3 spsk [1, 2, 4, 5] spsk.append('c') spsk [1, 2, 4, 5, 'c'] spsk.insert(2,'a') spsk [1, 2, 'a', 4, 5, 'c'] spsk.count('a') 1 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'] ```