# Отчет по теме 3 # Румянцев Вадим, А-03-23 ## 3 Операции с объектами ## 3.1 Начало подготовки отчета ## 3.2.1 Преобразование простых базовых типов объектов ```py logiz1=bool(56) logiz1 True logiz2=bool(0) logiz2 False logiz3=bool("beta") logiz3 True logiz4=bool("") logiz4 False ``` ## 3.2.2 Преобразование в целое десятичное число объекта с заданной системой счисления ```py 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") Traceback (most recent call last): File "", line 1, in tt5=int("98.76") ValueError: invalid literal for int() with base 10: '98.76' ``` # Диагностическое сообщение выдано по причине того, что число записано как строка, которую нельзя представить как число #Преобразование целых чисел или строк символов в вещественное число ```py flt1=float(789) flt1 789.0 flt2=float(-6.78e2) flt2 -678.0 flt3=float("infinity") flt3 inf flt4=float("-inf") flt4 -inf ``` ## 3.2.3 Преобразование десятичных чисел в другие системы счисления ```py hh=123 dv1=bin(hh) dv1 '0b1111011' vos1=oct(hh) vos1 '0o173' sch1=hex(hh) sch1 '0x7b' hh1=int(dv1,2) hh1 123 hh2=int(vos1,8) hh2 123 hh3=int(sch1,16) hh3 123 ``` ## 3.3 Изучение преобразований более сложных базовых типов объектов ## 3.3.1 Преобразование в строку символов ```py strk1=str(23.6) strk1 '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.3.2 Преобразование элементов объекта в список ```py 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'] spis4=list({"A":2,"B":1,"C":9}) spis4 ['A', 'B', 'C'] ``` ## 3.3.3 Преобразование элементов в кортеж kort7=tuple('Строка символов') kort7 ('С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в') kort8=tuple(spis2) kort8 (124, 236, -15, 908) kort9=tuple({"A":1,"B":2,"C":9}) kort9 ('A', 'B', 'C') ``` ## 3.3.4 Удаление объектов ```py del strk5, kort8 strk5 Traceback (most recent call last): File "", line 1, in strk5 NameError: name 'strk5' is not defined. Did you mean: 'strk1'? kort8 Traceback (most recent call last): File "", line 1, in kort8 NameError: name 'kort8' is not defined. Did you mean: 'kort7'? ``` #Создайте строку со своей фамилией и инициалами, преобразуйте её в список, затем список – в кортеж и, наконец, кортеж – в строку. ```py name1=str('Румянцев В А') name1 'Румянцев В А' name2=list(name1) name2 ['Р', 'у', 'м', 'я', 'н', 'ц', 'е', 'в', ' ', 'В', ' ', 'А'] name3=tuple(name2) name3 ('Р', 'у', 'м', 'я', 'н', 'ц', 'е', 'в', ' ', 'В', ' ', 'А') name4=str(name3) name4 "('Р', 'у', 'м', 'я', 'н', 'ц', 'е', 'в', ' ', 'В', ' ', 'А')" ``` ## 3.4 Арифметические операции ## 3.4.1 Сложение и вычитание ```py 12+7+90 109 5.689e-1-0.456 0.11289999999999994 23.6+54 77.6 14-56.7+89 46.3 ``` ## 3.4.2 Умножение ```py -6.7*12 -80.4 ``` ## 3.4.3 Деление ```py -234.5/6 -39.083333333333336 a=178/45 type(a) a 3.9555555555555557 ``` ## 3.4.4 Деление с округлением вниз (//) ```py b=178//45 b 3 c=-24.6//12.1 c -3.0 d=5.689e-1 // 2 d 0.0 5.689e-1 // 0.456 1.0 ``` ## 3.4.5 Получение остатка от деления ```py 148%33 16 12.6%3.8 1.2000000000000002 5.689e-1 % 0.456 0.11289999999999994 ``` ## 3.4.6 Возведение в степень ```py 14**3 2744 e=2.7**3.6 e 35.719843790663525 5.689e-1 ** 0.456 0.7732080836573664 ``` ## Операции с участием комплексных чисел ```py ``` ## 3.5 Операции с двоичными представлениеми целых чисел ## 3.5.1 Двоичная инверсия ```py dv1=9 dv1 9 dv2=~dv1 dv2 -10 ``` ### 3.5.2 Двоичное «И» (&) ```py bin(7&9) '0b1' bin(7&8) '0b0' ``` ## 3.5.3 Двоичное «ИЛИ» (|) ```py bin(7|9) '0b1111' bin(7|8) '0b1111' bin(14|5) '0b1111' ``` ## 3.5.4 Двоичное «исключающее ИЛИ»(^) ```py bin(14^5) '0b1011' ``` ## 3.5.5 Сдвиг двоичного представления на заданное число разрядов влево (<<) или вправо (>>) с дополнением нулями, соответственно справа или слева. ```py h=14 h1=bin(h) h1 '0b1110' g=bin(h<<2) g '0b111000' g1=h>>1 g1 7 g1=bin(h>>1) g1 '0b111' g2=bin(h>>2) g2 '0b11' h7=1341 h71=bin(h7) h71 '0b10100111101' g7=bin(h7<<4) g7 '0b101001111010000' g71=bin(h7>>5) g71 '0b101001' ``` ## 3.6 Операции при работе с последовательностями ## 3.6.1 Объединение последовательностей (конкатенация)(+) ```py 'Система '+'регулирования' 'Система регулирования' ['abc','de','fg']+['hi','jkl'] ['abc', 'de', 'fg', 'hi', 'jkl'] ('abc','de','fg')+('hi','jkl') ('abc', 'de', 'fg', 'hi', 'jkl') ``` ## 3.6.2 Повторение (*) ```py 'ля-'*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) ``` ## 3.6.3 Проверка наличия заданного элемента в последовательности (in) ```py stroka='Система автоматического управления' stroka 'Система автоматического управления' 'автомат' in stroka True 'ку' in ['ку','-']*3 True 'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl') False ``` ## 3.6.4 Подстановка значений в строку с помощью оператора «%» ```py stroka='Температура = %g %s %g' stroka 'Температура = %g %s %g' stroka % (16,' меньше ',25) 'Температура = 16 меньше 25' stroka='Температура = %(zn1)g %(sravn)s %(zn2)g' stroka 'Температура = %(zn1)g %(sravn)s %(zn2)g' stroka % {'zn1':16,'sravn':' меньше ','zn2':25} 'Температура = 16 меньше 25' ``` ## 3.7 Оператор присваивания ## 3.7.1 Обычное присваивание значения переменной (=) ```py zz=-12 ``` ## 3.7.2 Увеличение значения переменной на заданную величину (+=) или уменьшение (-=) ```py zz=-12 zz+=5 zz -7 zz-=3 zz -10 stroka='Система' stroka 'Система' stroka+=' регулирования' stroka 'Система регулирования' ``` ## 3.7.3 Умножение текущего значения переменной на заданную величину (*=) или деление (/=) ```py zz/=2 zz -5.0 zz*=5 zz -25.0 ``` ## 3.7.4 Операции деления с округлением вниз (//=), получения остатка от деления (%=) и возведения в степень(**=) ```py zz//=4 zz -7.0 zz%=2 zz 1.0 zz+=8 zz 9.0 zz**=3 zz 729.0 ``` ## 3.7.5 Множественное присваивание ```py w=v=10 w 10 v 10 n1,n2,n3=(11,-3,'all') n1 11 n2 -3 n3 'all' ``` ## 3.8 Логические операции – при создании логических выражений, дающих в результате вычисления значения True или False. ## 3.8.1 Операции сравнение: равенство (==), не равно (!=), меньше (<), больше (>), меньше или равно (<=), больше или равно (>=) ```py w==v True w!=v False wv False w<=v True w>=v True ``` ## 3.8.2 Проверка наличия заданного элемента в последовательности или во множестве, а также проверка наличия ключа в словаре ```py mnoz1={'pen','book','pen','iPhone','table','book'} mnoz1 {'pen', 'table', 'iPhone', 'book'} 'book' in mnoz1 True 'cap' in mnoz1 False dic1={'Saratov':145, 'Orel':56, 'Vologda':45} 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']} 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 ``` ## 3.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 ('Pskov' in dic1) or not ('cap' in mnoz1) True ``` ## 3.8.4 Проверка ссылок переменных на один и тот же объект (is). ```py w=v=10 w is v True w1=['A','B'] v1=['A','B'] w1 ['A', 'B'] v1 ['A', 'B'] w1 is v1 False # В первом случае значения w и v ссылаются на один и тот же объект "10" # Во втором случае значения w1 и v1 заданы отдельно для каждого значения ``` ## 3.9 Операции с объектами, выполняемые с помощью методов. ```py 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'] ``` ## 3.9.1 Методы для работы со строками. ```py 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' ``` ## 3.9.2 Методы для работы со списками. ```py spsk=list('jifoesd') spsk ['j', 'i', 'f', 'o', 'e', 's', 'd'] spsk.pop(2) 'f' spsk.append('c') spsk ['j', 'i', 'o', 'e', 's', 'd', 'c'] spsk.insert(2,'a') spsk ['j', 'i', 'a', 'o', 'e', 's', 'd', 'c'] spsk.count('a') 1 ``` ## 3.9.3 Самостоятельно создайте кортеж и изучите применение его методов. ```py numbers = (1, 2, 3, 2, 4, 2, 5, 2) count_2 = numbers.count(2) count_2 4 ``` ## 3.9.4 Cамостоятельно изучите методы словарей и множеств. # Словари ```py person = {"name": "Alice", "age": 25, "city": "Moscow", "country": "Russia"} age = person.pop("age") age 25 person = {"name": "Alice", "age": 25, "city": "Moscow"} last_item = person.popitem() last_item ('city', 'Moscow') ``` # Множества ```py fruits = {"apple", "banana", "orange"} fruits.add("grape") fruits {'grape', 'orange', 'apple', 'banana'} numbers = {1, 2, 3, 4, 5} numbers.remove(3) numbers {1, 2, 4, 5} numbers = {1, 2, 3, 4, 5} numbers.clear() numbers set() ```