# Отчет по Теме 3 Савин Семён, А-02-23 ## Пункт 2. Преобразование простых типов объектов. ## 2.1 Преобразование в логический тип ```py logiz1 = bool(56) >>> logiz2 = bool(0) >>> logiz3 = bool("Beta") >>> logiz4 = bool("") >>> logiz1 True >>> logiz2 False >>> logiz3 True >>> logiz4 False ``` ## 2.2 Преобразование в целое число ```py 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 tt5 = int("98.76") ValueError: invalid literal for int() with base 10: '98.76' >>> tt1 198 >>> tt2 -76 >>> tt3 11 >>> tt4 57 ``` ## 2.3 Преобразование в вещественное число ```py flt1 = float(789) >>> flt2 = float(-6.78e2) >>> flt3 = float ("Infinity") >>> flt4 = float("-inf") >>> flt1 789.0 >>> flt2 -678.0 >>> flt3 inf >>> flt4 -inf ``` ## Пункт 3. Преобразование более сложных базовых типов объектов. ## 3.1. Преобразование в строку ```py >>> 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}) >>> strk1 '23.6' >>> strk2 'True' >>> strk3 "['A', 'B', 'C']" >>> strk4 "('A', 'B', 'C')" >>> strk5 "{'A': 1, 'B': 2, 'C': 9}" ``` ## 3.2. Преобразование в список ```py >>> spis1 = list("Строка символов") >>> spis2 = list((124,236,-15,908)) >>> spis3 = list({"A":1,"B":2,"C":9}) >>> spis1 ['С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в'] >>> spis2 [124, 236, -15, 908] >>> spis3 ['A', 'B', 'C'] ``` ## 3.3. Преобразование в кортеж ```py >>> kort7=tuple('Строка символов') >>> kort8 = tuple(spis2) >>> kort9 = tuple({"A":1, "B":2, "C":9}) >>> kort7 ('С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в') >>> kort8 (124, 236, -15, 908) >>> kort9 ('A', 'B', 'C') ``` ## 3.4 Удаление объектов ```py >>> del strk5,kort8 >>> strk5 Traceback (most recent call last): File "", line 1, in strk5 NameError: name 'strk5' is not defined >>> kort8 Traceback (most recent call last): File "", line 1, in kort8 NameError: name 'kort8' is not defined ``` ## Пункт 4. Арифметические операции. ## 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 ``` ## 4.2. Умножение ```py >>> -6.7*12 -80.4 ``` ## 4.3. Деление ```py >>> -234.5/6 -39.083333333333336 >>> a=178/45 >>> a 3.9555555555555557 ``` ## 4.4. Деление с округлением вниз ```py >>> b=178//45 >>> c=-24.6//12.1 >>> b 3 >>> c -3.0 ``` ## 4.5. Получение остатка от деления ```py >>> 146%33 14 >>> 148%33 16 >>> 12.6%3.8 1.2000000000000002 >>> 11%3.8 3.4000000000000004 >>> 4.0%1.0 0.0 ``` ## 4.6. Возведение в степень ```py >>> 14**3 2744 >>> e=2.7**3.6 >>> e 35.719843790663525 >>> 2**4.5 22.627416997969522 >>> g = 14 - 8j >>> g**2 (132-224j) >>> g%2 Traceback (most recent call last): File "", line 1, in g%2 TypeError: can't mod complex numbers. >>> g//2 Traceback (most recent call last): File "", line 1, in g//2 TypeError: can't take floor of complex number. >>> g/2 (7-4j) >>> g*5 (70-40j) ``` ## Пункт 5. Операции с двоичными представлениями целых чисел. ## 5.1. Двоичная инверсия ```py >>> dv1 = 9 >>> dv2 = ~dv1 >>> bin(dv2) '-0b1010' ``` ## 5.2. Двоичное "И" ```py >>> bin(7&9) '0b1' >>> bin(7&8) '0b0' ``` ## 5.3. Двоичное "ИЛИ" ```py >>> a = bin(7|9) >>> b = bin(7|8) >>> a '0b1111' >>> b '0b1111' ``` ## 5.4. Двоичное "исключающее ИЛИ" ```py >>> c = bin(14^5) >>> c '0b1011' ``` ## 5.5. Сдвиг двоичного представления ```py >>> h = 14 >>> bin(h) '0b1110' >>> g = h<<2 >>> g 56 >>> bin(g) '0b111000' >>> g1 = h>>1 >>> g2 = h>>2 >>> bin(g1), bin(g2) ('0b111', '0b11') ``` ## Пункт 6. Операции при работе с последовательностями. ## 6.1. Объединние последовательностей. ```py 'Система '+'регулирования' 'Система регулирования' >>> ['abc','de','fg']+['hi','jkl'] ['abc', 'de', 'fg', 'hi', 'jkl'] >>> ('abc','de','fg')+('hi','jkl') ('abc', 'de', 'fg', 'hi', 'jkl') ``` ## 6.2. Повторение последовательностей ```py >>> 'ля-'*5 'ля-ля-ля-ля-ля-' >>> ['ку','-']*3 ['ку', '-', 'ку', '-', 'ку', '-'] >>> ('кис','-')*4 ('кис', '-', 'кис', '-', 'кис', '-', 'кис', '-') >>> signal1=[0]*3+[1]*99 >>> signal2=(0,)*3+(1,)*5+(0,)*7 >>> 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, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0) ``` ## 6.3. Проверка наличия заданного элемента. ```py stroka='Система автоматического управления' >>> 'автомат' in stroka True >>> 'ку' in ['ку','-']*3 True >>> 'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl') False ``` ## 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':16,'sravn':' меньше ','zn2':25} 'Температура = 16 меньше 25' ``` ## Пункт 7. Оператор присваивания ## 7.1. Обычное присваивание значения. ```py zz = -12 ``` ## 7.2. Увеличение/уменьшение на заданную величину. ```py >>> zz+=5 >>> zz -7 >>> zz-=3 >>> zz -10 >>> stroka = "система" >>> stroka += " регулирования" >>> stroka 'система регулирования' ``` ## 7.3. Умножение/деление на заданную величину. ```py >>> zz -10 >>> zz/=2 >>> zz -5.0 >>> zz*=5 >>> zz -25.0 ``` ## 7.4. Деление с округлением, вычисление остатка и возведение в степень. ```py >> zz+=2.7 >>> zz -2.3 >>> zz//=2 >>> zz -2.0 >>> zz+=8.5 >>> zz 6.5 >>> zz%=4 >>> zz 2.5 >>> zz**=2 >>> zz 6.25 ``` ## 7.5. Множественное присваивание ```py >>> w=v=10 >>> n1,n2,n3=(11,-3,'all') >>> w 10 >>> v 10 >>> n1 11 >>> n2 -3 >>> n3 'all' >>> n1,n2,n3 = [11,-3,'all'] >>> n1 11 >>> n2 -3 >>> n3 'all' >>> n1,n2,n3 = {11,-4,'al'} >>> n1 11 >>> n2 -4 >>> n3 'al' >>> testdict {'a': 'test1', 'b': 14, 'c': 'test3'} >>> n1,n2,n3 = testdict["a"], testdict["b"], testdict["c"] >>> n1 'test1' >>> n2 14 >>> n3 'test3' >>> strka = "ФБВГД" >>> n1,n2,n3 = strka[1],strka[3], strka[4] >>> n1 'Б' >>> n2 'Г' >>> n3 'Д' ``` ## Пункт 8. Логические операции. ## 8.1. Операции сравнения. ```py >>> w==v True >>> w<=v True >>> w>=v True >>> w>v False >>> w>> w 10 >>> v 10 ``` ## 8.2. Проверка наличия заданного элемента в последовательности, множестве. Наличие ключа в словаре ```py >>> 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. Создание больших логических выражений с использованием соединительных слов. ```py >>> a = 17 >>> b=-6 >>> (a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1) True >>> (a==b) or ("AVTI" in dct1["Institut"]) True >>> not ("book" in mnoz1) and("Moskow" in dic1) False ``` ## 8.4. Проверка ссылок переменных на один и тот же объект ```py >>> w=v=10 >>> w is v True >>> w1=['A','B'] >>> v1=['A','B'] >>> w1 is v1 False >>> w1=v1=['A','B'] >>> w1 is v1 True ``` ## Пункт 9. Операции с объектами, выполняемые с помощью методов. ## 9.1. Методы для работы со строками. ```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', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] >>> stroka.find('пр') 5 >>> stroka.count("с") 4 >>> stroka.replace(' у',' автоматического у') 'Микропроцессорная система автоматического управления' >>> spis22=stroka.split(' ') >>> spis22 ['Микропроцессорная', 'система', 'управления'] >>> stroka.upper() 'МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ' >>> stroka3 = "".join(spis22) >>> stroka3 'Микропроцессорнаясистемауправления' >>> stroka3.partition("c") ('Микропроцессорнаясистемауправления', '', '') >>> stroka3.partition("с") ('Микропроце', 'с', 'сорнаясистемауправления') >>> stroka3.rpartition("с") ('Микропроцессорнаяси', 'с', 'темауправления') >>> help(format) Help on built-in function format in module builtins: format(value, format_spec='', /) Return value.__format__(format_spec) format_spec defaults to the empty string. See the Format Specification Mini-Language section of help('FORMATTING') for details. >>> 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,2,3,4,5,'a','b','c'] >>> spsk.pop(2) 3 >>> spsk.append('c') >>> spsk [1, 2, 4, 5, 'a', 'b', 'c', 'c'] >>> spsk.insert(2,'a') >>> spsk [1, 2, 'a', 4, 5, 'a', 'b', 'c', 'c'] >>> spsk.count('a') 2 >>> spsk [1, 2, 'a', 4, 5, 'a', 'b', 'c', 'c'] >>> dir(spsk) ['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__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'] ``` ## 9.3. Методы работы с кортежами ```py >>> kort = (1,2,3,4,5,'a','c') >>> dir(kort) ['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index'] >>> kort.count(a) 0 >>> kort.count('a') 1 >>> len(kort) 7 ``` ## 9.4. Методы работы с множествами и словарями ```py >>> slova = {"A": 123, "B":456} >>> dir(slova) ['__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'] >>> slova.keys() dict_keys(['A', 'B']) >>> slova.items >>> mnoz = {1,2,3,4,5,6} >>> dir(mnoz) ['__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'] >>> mnoz.pop() 1 >>> mnoz {2, 3, 4, 5, 6} ```