# Отчет по теме 3 Коваленко Дмитрий, А-01-23 ## 3 Операции с объектами ### 3.1 Преобразование в логический тип с помощью функции bool(<Объект>). ``` >>> logiz1=bool(56) >>> logiz2=bool(0) >>> logiz3=bool("Beta") >>> logiz4=bool("") >>> logiz1 True >>> logiz2 False >>> logiz3 True >>> logiz4 False ``` ### 3.2 Преобразование в целочисленный тип int и вещественный float ``` >>> tt1=int(198.6) >>> tt2=int("-76") >>> tt3=int("B",16) >>> tt4=int("71",8) >>> tt5=int("98.76") 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") flt4=float("-inf")>>> flt2=float(-6.78e2) >>> flt3=float("Infinity") >>> flt4=float("-inf") >>> flt1 789.0 >>> flt2 -678.0 >>> flt3 inf >>> flt4 -inf ``` ### 3.3 Преобразование десятичных чисел в другие системы счисления ``` >>> hh=123 >>> dv1=bin(hh) >>> vos1=oct(hh) >>> shs1=hex(hh) >>> dv1 '0b1111011' >>> vos1 '0o173' >>> shs1 '0x7b' >>> nDv1 = int(dv1, 2) >>> nDv1 123 >>> nVos1 = int(vos1, 8) >>> nVos1 123 >>> nShs1 = int(shs1, 16) >>> nShs1 123 ``` ### 3.4 Преобразование в строку символов с помощью функции str(<Объект>) ``` >>> strk1=str(23.6) >>> strk2=str(logiz3) >>> strk3=str(["A","B","C"]) >>> strk4=str(("A","B","C")) >>> strk5=str({"A":1,"B":2,"C":9}) >>> strk3 "['A', 'B', 'C']" ``` ### 3.5 Преобразование элементов объекта в список с помощью функции list(<Объект>) ``` >>> spis1=list("Строка символов") >>> spis2=list((124,236,-15,908)) >>> spis3=list({"A":1,"B":2,"C":9}) >>> spis3 ['A', 'B', 'C'] ``` ### 3.6 Преобразование элементов объектов в кортеж с помощью функции tuple(<Объект>). ``` >>> kort7=tuple('Строка символов') >>> kort8=tuple(spis2) >>> kort9=tuple({"A":1,"B":2,"C":9}) >>> kort9 ('A', 'B', 'C') ``` ### 3.7 Удаление объектов ``` >>> del strk5, kort8 >>> strk5 Traceback (most recent call last): File "", line 1, in NameError: name 'strk5' is not defined ``` ### 3.8 Арифметические операции Сложение и вычитание (+ и -) ``` >>> 12+7+90 109 >>> 5.689e-1 - 0.456 0.11289999999999994 >>> 23.6+54 77.6 >>> 14-56.7+89 46.3 ``` Умножение (*) ``` >>> -6.7*12 -80.4 ``` Деление (/) ``` >>> -234.5/6 -39.083333333333336 >>> a=178/45 >>> a 3.9555555555555557 ``` Деление с округлением вниз (//) ``` >>> b=178//45 >>> c=-24.6//12.1 >>> b 3 >>> c -3.0 ``` Получение остатка от деления (%) ``` >>> 148%33 16 >>> 12.6%3.8 1.2000000000000002 ``` Возведение в степень (**). ``` >>> 14**3 2744 >>> e=2.7**3.6 >>> e 35.719843790663525 ``` ### 3.9 Операции с двоичными представлениями целых чисел Двоичная инверсия ``` >>> dv1=9 >>> dv2=~dv1 >>> dv2 -10 ``` Двоичное «И» (&) – побитовое совпадение двоичных представлений чисел ``` >>> 7&9 1 >>> 7&8 0 ``` Двоичное «ИЛИ» (|) ``` >>> 7|9 15 >>> 7|8 15 >>> 14|5 15 ``` Двоичное «исключающее ИЛИ»(^) ``` >>> 14^5 11 ``` Сдвиг двоичного представления на заданное число разрядов влево (<<) или вправо (>>) ``` >>> h=14 >>> g=h<<2 >>> g1=h>>1 >>> g2=h>>2 >>> g 56 >>> g1 7 >>> g2 3 ``` ### 3.10 Операции при работе с последовательностями (строками, списками, кортежами). Объединение последовательностей (конкатенация)(+) ``` >>> 'Система '+'регулирования' 'Система регулирования' >>> ['abc','de','fg']+['hi','jkl'] ['abc', 'de', 'fg', 'hi', 'jkl'] >>> ('abc','de','fg')+('hi','jkl') ('abc', 'de', 'fg', 'hi', 'jkl') ``` Повторение (*) ``` >>> 'ля-'*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) ``` Проверка наличия заданного элемента в последовательности (in) ``` >>> stroka='Система автоматического управления' >>> 'автомат' in stroka True >>> 'ку' in ['ку','-']*3 True >>> 'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl') False ``` Подстановка значений в строку с помощью оператора «%» ``` >>> stroka='Температура = %g %s %g' >>> stroka % (16,' меньше ',25) 'Температура = 16 меньше 25' >>> stroka='Температура = %(zn1)g %(sravn)s %(zn2)g' >>> stroka % {'zn1':16,'sravn':' меньше ','zn2':25} 'Температура = 16 меньше 25' ``` ### 3.11 Оператор присваивания Обычное присваивание значения переменной (=) ``` zz=-12 ``` Увеличение значения переменной на заданную величину (+=) или уменьшение (-=) ``` >>> zz +=5 >>> zz -7 >>> zz -=3 >>> zz -10 >>> stroka='Система' >>> stroka+=' регулирования' >>> stroka 'Система регулирования' ``` Умножение текущего значения переменной на заданную величину (*=) или деление (/=) ``` >>> zz /= 2 >>> zz -5.0 >>> zz *= 5 >>> zz -25.0 ``` Изучим оперции `//=`, `%=`, `**=` ``` >>> zz //= 2 >>> zz -13.0 >>> zz %= 2 >>> zz 1.0 >>> zz **= 3 >>> zz 1.0 ``` Множественное присваивание ``` >>> w=v=10 >>> n1,n2,n3=(11,-3,'all') >>> n2 -3 >>> m1 = m2 = {1: '1', 2: '2'} >>> m1 {1: '1', 2: '2'} ``` ### 3.12 Логические операции Операции сравнение ``` >>> w != v False ``` Проверка наличия заданного элемента в последовательности или во множестве ``` >>> 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 ``` Создание больших логических выражений с использованием соединительных слов: логическое «И» (and), логическое «ИЛИ» (or), логическое «НЕ» (not). ``` >>> a=17 >>> b=-6 >>> (a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1) True ``` Проверка ссылок переменных на один и тот же объект (is) ``` >>> w=v=10 w is v w1=['A','B'] v1=['A','B'] w1 is v1>>> w is v True >>> w1=['A','B'] >>> v1=['A','B'] >>> w1 is v1 False ``` результат последней проверки выдал Flase потому что мы создали два фактически разных списка, так как они находятся в разных ячейках памяти ### 3.13 Операции с объектами, выполняемые с помощью методов. Методы для работы со строками ``` >>> stroka='Микропроцессорная система управления' >>> stroka.find('пр') 5 >>> stroka.count("с") 4 >>> stroka.replace(' у',' автоматического у') 'Микропроцессорная система автоматического управления' >>> spis22=stroka.split(' ') >>> stroka.upper() 'МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ' >>> stroka3=" ".join(spis22) >>> stroka3.partition("с") ('Микропроце', 'с', 'сорная система управления') >>> stroka3.rpartition("с") ('Микропроцессорная си', 'с', 'тема управления') ``` Изучим `format` ``` 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' ``` Методы для работы со списками ``` >>> spsk = [1, 2, 3, 4, 5, 6] >>> spsk.pop(2) 3 >>> spsk.append('c') >>> spsk.insert(2,'a') >>> spsk.count('a') 1 ``` ### 3.14 Изучим методы кортежей, множеств, словарей ``` tup = (1, 2, 3, 4) >>> tup=tup+(5,7) >>> tup (1, 2, 3, 4, 5, 7) >>> tup.count(2) >>> len(tup) 6 set1 = {1, 1, '1', True} >>> set1 {1, '1'} >>> set1.pop() 1 >>> dir(set1) ['__and__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update'] >>> map1 = {1: '1', 2: '2'} >>> map1.keys() dict_keys([1, 2]) >>> dir(map1) ['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__ior__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__ror__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values'] ```