# Отчет по теме 3 Хатюхин Евгений, А-02-23 ## 1 Запуск IDLE ## 2 Преобразование базовых типов объектов в другие типы ### 2.1 Изучил преобразование объектов в логический тип данных ```py logiz1=bool(56) logiz2=bool(0) logiz3=bool("Beta") logiz4=bool("") logiz4 False ``` ### 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' # Т.к. число является вещественным и представлено в виде строки, то для преобразования его в целочисленный тип данных нужно сперва преобразовать строку в тип данных float, а потом из float в int 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 Изучил преобразование целочисленных объектов в строки с двоичным, восьмеричным и шестнадцатеричным представлением и обратное представление ```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,8*2) 123 ``` ## 3 Изучил преобразования более сложных базовых типов объектов ### 3.1 Изучил преобразование в строку символов с помощью функции str(<Объект>) ```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.2 Изучил преобразование элементов объекта в список с помощью функции list(<Объект>) ```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'] spis3 = list({"A":1,"B":2,"C":9}.values()) spis3 [1, 2, 9] ``` ### 3.3 Изучил преобразование элементов объектов в кортеж с помощью функции tuple(<Объект>) ```py 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 Изучил удаление объектов ```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'? "strk5" in dir() False dir() ['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'dv1', 'flt1', 'flt2', 'flt3', 'flt4', 'hh', 'kort7', 'kort9', 'logiz1', 'logiz2', 'logiz3', 'logiz4', 'shs1', 'spis1', 'spis2', 'spis3', 'strk1', 'strk2', 'strk3', 'strk4', 'tt1', 'tt2', 'tt3', 'tt4', 'vos1'] fam = "Хатюхин Е.С." fam_ls = list(fam) fam_ls ['Х', 'а', 'т', 'ю', 'х', 'и', 'н', ' ', 'Е', '.', 'С', '.'] fam_krt = tuple(fam_ls) fam_krt ('Х', 'а', 'т', 'ю', 'х', 'и', 'н', ' ', 'Е', '.', 'С', '.') fam_str = str(fam_krt) fam_str "('Х', 'а', 'т', 'ю', 'х', 'и', 'н', ' ', 'Е', '.', 'С', '.')" ``` ## 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   #Умножение вещественного числа на целое число ``` ### 4.3 Изучил деление (/) ```py -6.7*12 #Умножение вещественного числа на целое число -80.4 -234.5/6 #Деление вещественного числа на целое -39.083333333333336 a=178/45 #Деление двух целых чисел – проверьте тип объекта a! type(a) a 3.9555555555555557 ``` ### 4.4 Изучил деление с округлением вниз (//). Здесь результат может быть целым или вещественным. В нижеследующих операциях определите тип результата. ```py b=178//45 #Деление двух целых чисел b 3 c=-24.6//12.1 #Деление двух вещественных чисел c -3.0 d = -52.2 // 5 d -11.0 ``` ### 4.5 Изучил получение остатка от деления (%) ```py 148%33 #Остаток от деления двух целых чисел 16 12.6%3.8 #Остаток от деления двух вещественных чисел 1.2000000000000002 12.6%4 0.5999999999999996 12%4.0 0.0 ``` ### 4.6 Изучил возведение в степень (\*\*) ```py 14**3 #Целое число возводится в целую степень 2744 e=2.7**3.6 #Вещественное число возводится в вещественную степень e 35.719843790663525 14**(1/2) 3.7416573867739413 2**(1/2) 1.4142135623730951 ``` ```py km1 = 5 - 7j km2 = 10 - 14j km1;km2 (5-7j) (10-14j) km1 + km2 (15-21j) km1-km2 (-5+7j) km1//km2 Traceback (most recent call last): File "", line 1, in km1//km2 TypeError: unsupported operand type(s) for //: 'complex' and 'complex' km1/km2 (0.5-0j) km1**km2 (-1312.815003718761-3445.7568233592656j) km1%km2 Traceback (most recent call last): File "", line 1, in km1%km2 TypeError: unsupported operand type(s) for %: 'complex' and 'complex' ``` ## 5 Изучил операции с двоичными представлениями целых чисел ### 5.1 Изучил двоичную инверсию (~) ```py dv1=9 dv2=~dv1 dv2 -10 ``` ### 5.2 Изучил двоичное «И» (&) – побитовое совпадение двоичных представлений чисел ```py 7&9 # 111 и 1001 = 0001 1 7&8 # 111 и 1000 = 0000 0 ``` ### 5.3 Изучил двоичное «ИЛИ» (|) ```py 7|9 # 111 или 1001 = 1111 15 7|8 # 111 или 1000 = 1111 15 14|5 # 1110 или 0101 = 1111 15 ``` ### 5.4 Изучил двоичное «исключающее ИЛИ»(^) ```py 14^5  # 1110 исключающее или 0101 = 1011 ``` ### 5.5 Изучил сдвиг двоичного представления на заданное число разрядов влево (<<) или вправо (>>) с дополнением нулями, соответственно справа или слева ```py h=14 #Двоичное представление = 1110 g=h<<2 # Новое двоичное представление = 111000 g 56 g1=h>>1 # Новое двоичное представление = 0111 g1 7 g2=h>>2 # Новое двоичное представление = 0011 g2 3 ``` ```py bin1 = int('0101010',2) bin2 = int('1010101',2) bin1;bin2 42 85 bin1&bin2 0 bin1|bin2 127 bin1^bin2 127 bin3 = ~bin1 bin3 -43 ``` ## 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 #Повторение строки 5 раз 'ля-ля-ля-ля-ля-' ['ку','-']*3 #Повторение списка 3 раза ['ку', '-', 'ку', '-', 'ку', '-'] ('кис','-')*4 #Повторение кортежа 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) ```py stroka='Система автоматического управления' 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 zz -12 ``` ## 7.2 Изучил увеличение значения переменной на заданную величину  (+=) или уменьшение (-=) ```py zz+=5 # Значение zz увеличивается на 5 zz -7 zz-=3 # Значение уменьшается на 3 zz -10 ``` ### 7.3 Изучил умножение текущего значения переменной на заданную величину (\*=) или деление (\/=) ```py zz/=2 zz -5.0 zz*=5 zz -25.0 a = 'bb' a *= 2 a 'bbbb' ``` ## 7.4 Изучил операции деления с округлением вниз (//=), получения остатка от деления (%=) и возведения в степень(\*\*=) ```py a = 20 a //= 6 a 3 a %= 2 a 1 a = 2 a **= 4 a 16 ``` ### 7.5 Изучил множественное присваивание ```py w=v=10 # Переменным присваивается одно и то же значение w 10 v 10 n1,n2,n3=(11,-3,'all') #Значения переменных берутся из кортежа n1 11 n2 -3 n3 'all' n1,n2,n3="11", "-3", "all" n1;n2;n3 '11' '-3' 'all' n1,n2,n3=[11,-3,'all'] n1;n2;n3 11 -3 'all' n1,n2,n3={11: 3,-3:7,'all':8} n1;n2;n3 11 -3 'all' ``` ## 8 Изучил логические операции ### 8.1 Изучил Операции сравнение: равенство (\=\=), не равно (!=), меньше (<), больше (>), меньше или равно (<=), больше или равно (>=) ```py w==v True w>v False w=v True w!=v False ``` ### 8.2 Изучил проверку наличия заданного элемента в последовательности или во множестве, а также  проверка наличия ключа в словаре (in) ```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 Изучил создание больших логических выражений с использованием соединительных слов: логическое «И» (and), логическое «ИЛИ» (or), логическое «НЕ» (not) ```py a=17 b=-6 (a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1) True (5>6) and 'cap' in mnoz1 and not(56 in dic1.values()) False (4==2*2) and (2**4 == 16) and not(100 > 1000) True ``` ### 8.4 Изучил проверку ссылок переменных на один и тот же объект (is) ```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 Изучил операции с объектами, выполняемые с помощью методов ```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'] ``` ### 9.1 Изучил методы для работы со строками ```py stroka.find('пр') #Возвращает номер позиции первого вхождения указанного контекста или значение -1 5 stroka.count("с") #Подсчет числа вхождений строки “с” в stroka 4 stroka.replace(' у',' автоматического у') 'Микропроцессорная система автоматического управления' spis22=stroka.split(' ') #Возвращает список подстрок, между которыми в строке стоит заданный разделитель spis22 ['Микропроцессорная', 'система', 'управления'] stroka.upper() #Возвращает строку со всеми заглавными буквами 'МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ' stroka3=" ".join(spis22) #Возвращает строку, собранную из элементов списка stroka3 'Микропроцессорная система управления' stroka3.partition("с") #Возвращает кортеж с результатами поиска «с» слева ('Микропроце', 'с', 'сорная система управления') stroka3.rpartition("с") #Возвращает кортеж с результатами поиска «с» справа ('Микропроцессорная си', 'с', 'тема управления') 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 sp = ['a','b','c','1','5'] sp ['a', 'b', 'c', '1', '5'] spsk = sp 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'] spsk.pop(2) 'c' spsk.append('c') spsk ['a', 'b', '1', '5', 'c'] spsk.insert(2,'a') spsk ['a', 'b', 'a', '1', '5', 'c'] spsk.count('a') 2 spsk = sp spsk.pop(2) 'a' spsk ['a', 'b', '1', '5', 'c'] sp.pop(1) 'b' sp ['a', '1', '5', 'c'] ``` ### 9.3 Изучил применение методов кортежа ```py kor = ('a','b','a','1','2') kor ('a', 'b', 'a', '1', '2') dir(kor) ['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index'] kor.index('1') 3 kor.count('a') 2 ``` ### 9.4 Изучил методы словарей и множеств ```py sl = {"A":3, "B":4} sl {'A': 3, 'B': 4} dir(sl) ['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getstate__', '__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'] sl.keys() dict_keys(['A', 'B']) ``` ## 10 Завершил работу в IDLE