# Отчет по теме 3 Лыкова Елизавета, А-01-23 ## 1. Запуск IDLE, привязка католога, создание файла отчета. ```py import os os.chdir("C:\\Users\\Home\\Desktop\\python-labs\\TEMA3") ``` ## 2. Преобразование простых базовых типов объектов. ## 2.1 Логическая функция bool. ```py logiz1 = bool(56) logiz1, type(logiz1) (True, ) logiz2 = bool(0) logiz2, type(logiz2) (False, ) logiz3 = bool("Beta") logiz3, type(logiz3) (True, ) logiz4 = bool("") logiz4, type(logiz4) (False, ) ``` ## 2.2.1 Функция int. ```py tt1 = int(198.6) tt1, type(tt1) (198, ) tt2 = int('-76') tt2, type(tt2) (-76, ) tt3 = int('B',16) tt3, type(tt3) (11, ) tt4 = int('71',8) tt4, type(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' ``` Диагностическое сообщение было выведено из-за того, что int ожидает в кавычках целое число, а не дробное. ## 2.2.2 Функция float. ```py flt1 = float(789) flt1, type(flt1) (789.0, ) flt2 = float(-6.78e2) flt2, type(flt2) (-678.0, ) flt3 = float('Infinity') flt3, type(flt3) (inf, ) flt4 = float('-inf') flt4, type(flt4) (-inf, ) ``` ## 2.3. Другие системы счисления. ```py 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. ```py strk1 = str(23.6) strk1, type(strk1) ('23.6', ) strk2 = str(logiz3) strk2, type(strk2) ('True', ) strk3 = str(['A','B','C']) strk3, type(strk3) ("['A', 'B', 'C']", ) strk4 = str(('A','B','C')) strk4, type(strk4) ("('A', 'B', 'C')", ) strk5 = str({'A':1,'B':2,'C':9}) strk5, type(strk5) ("{'A': 1, 'B': 2, 'C': 9}", ) ``` ## 3.2 Функция list. ```py spis1 = list('Строка символов') spis1, type(spis1) (['С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в'], ) spis2 = list((124,236,-15,908)) spis2, type(spis2) ([124, 236, -15, 908], ) spis3 = list({'A':1,'B':2,'C':9}) spis3, type(spis3) (['A', 'B', 'C'], ) # Список со значениями spis4 = list({'A':1,'B':2,'C':9}.values()) spis4, type(spis4) ([1, 2, 9], ) # Словарь полностью spis4 = list({'A':1,'B':2,'C':9}.items()) spis4, type(spis4) ([('A', 1), ('B', 2), ('C', 9)], ) ``` ## 3.3 Функция tuple. ```py kort7=tuple('Строка символов') kort7, type(kort7) (('С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в'), ) kort8 = tuple(spis2) kort8, type(kort8) ((124, 236, -15, 908), ) kort9 = tuple({'A':1,'B':2,'C':9}) kort9, type(kort9) (('A', 'B', 'C'), ) ``` ## 3.4 Удаление объектов. ```py del strk5, kort8 print(strk5) Traceback (most recent call last): File "", line 1, in print(strk5) NameError: name 'strk5' is not defined print(kort8) Traceback (most recent call last): File "", line 1, in print(kort8) NameError: name 'kort8' is not defined. Did you mean: 'kort7'? imya = 'Lykova E.A' imya 'Lykova E.A' spis = list(imya) spis ['L', 'y', 'k', 'o', 'v', 'a', ' ', 'E', '.', 'A'] kort = tuple(spis) kort ('L', 'y', 'k', 'o', 'v', 'a', ' ', 'E', '.', 'A') strk = str(kort) strk "('L', 'y', 'k', 'o', 'v', 'a', ' ', 'E', '.', 'A')" ``` ## 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, type(a) (3.9555555555555557, ) ``` ## 4.4 Деление с округлением вниз. ```py b = 178//45 b, type(b) (3, ) c = -24.6//12.1 c, type(c) (-3.0, ) d = 178//12.1 d, type(d) (14.0, ) e = -24.6//45 e, type(e) (-1.0, ) ``` ## 4.5 Остаток от деления. ```py 148%33 16 12.6%3.8 1.2000000000000002 148%3.8 3.6000000000000068 12.6%33 12.6 ``` ## 4.6 Возведение в степень. ```py 14**3 2744 e = 2.7**3.6 e 35.719843790663525 14**3.6 13367.830445904418 2.7**3 19.683000000000003 c1 = 3 + 4j c2 = 1 - 2j c1 + c2 (4+2j) c1 - c2 (2+6j) c1 * c2 (11-2j) c1/c2 (-1+2j) c1//c2 Traceback (most recent call last): File "", line 1, in c1//c2 TypeError: unsupported operand type(s) for //: 'complex' and 'complex' c1%c2 Traceback (most recent call last): File "", line 1, in c1%c2 TypeError: unsupported operand type(s) for %: 'complex' and 'complex' c1** 2 (-7+24j) ``` Как мы видим, для работы с комплексными числами нельзя применять операции остатка от деления и деление с округлением вниз. ## 5. Операции с двоичным представдением целых чисел. ## 5.1 Двоичная инверсия. ```py dv1 = 9 dv2 = ~dv1 bin(dv1) '0b1001' dv2 -10 bin(dv2) '-0b1010' ``` ## 5.2 Двоичное 'И'. ```py 7&9 1 bin(7&9) '0b1' 7&8 0 bin(7&8) '0b0' ``` ## 5.3 Двоичное 'ИЛИ'. ```py 7|9 15 bin(7|9) '0b1111' 7|8 15 bin(7|8) '0b1111' 14|5 15 bin(14|5) '0b1111' ``` ## 5.4 Двоичное исключающее 'ИЛИ'. ```py 14^5 11 bin(14^5) '0b1011' ``` ## 5.5 Сдвиг двоичного представления на заданное число разрядов. ```py l1 = 68 l2 = 71 bin(l1) '0b1000100' bin(l2) '0b1000111' bin(~l1) '-0b1000101' bin(~l2) '-0b1001000' bin(l1&l2) '0b1000100' bin(l1|l2) '0b1000111' bin(l1^l2) '0b11' bin(l1>>2) '0b10001' bin(l2<<1) '0b10001110' ``` ## 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 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 Проверка наличия заданного элемента в последовательности. ```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%(sptavn)s %(zn2)g' stroka 'Температура = %(zn1)g%(sptavn)s %(zn2)g' stroka %{'zn1':16,'sptavn':'меньше','zn2':25} 'Температура = 16меньше 25' ``` ## 7. Оператор присваивания. ## 7.1 Обычное присваивание. ```py zz=-12 zz -12 ``` ## 7.2 Увеличение значения на заданную величину. ```py zz+=5 zz -7 zz-=3 zz -10 stroka = 'Система' stroka+= 'регулирования' stroka 'Системарегулирования' ``` ## 7.3 Умножение на заданную величину. ```py zz/=2 zz -5.0 zz*=5 zz -25.0 strokan = 'ля' strokan *= 5 strokan 'ляляляляля' ``` ## 7.4 Операция деления с округлением, получение остатка от деления и возведение в степень. ```py ll = 77 ll//=3 ll 25 ll%=3 ll 1 ll**=7 ll 1 ``` ## 7.5 Множественное присваивание. ```py w = v = 10 n1,n2,n3=(11,-3,'all') w 10 v 10 n1 11 n2 -3 n3 'all' a1,a2,a3 = 'na', 'no', 'nu' a1,a2,a3 ('na', 'no', 'nu') a1,a2,a3 = 'abc' a1,a2,a3 ('a', 'b', 'c') b1,b2,b3 = ['la','lo','lu'] b1,b2,b3 ('la', 'lo', 'lu') c1,c2,c3 = {'ha':1,'ho':2,'he':3} c1,c2,c3 ('ha', 'ho', 'he') d1,d2,d3 = {'me','ma','mo'} d1,d2,d3 ('ma', 'me', 'mo') ``` ## 8. Логические операции. ## 8.1 Операции сравнения. ```py w == v True w != v False w < v False w > v False w <= v True w >= v True ``` ## 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} '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 ('Saratov' in dic1) or ('deck' in mnoz1) True ('Saratov' in dic1) and not (a