diff --git a/TEMA3/Task.md b/TEMA3/Task.md new file mode 100644 index 0000000..95ccccb --- /dev/null +++ b/TEMA3/Task.md @@ -0,0 +1,59 @@ +```py +# Общее КЗ +a = int("45", 8) +a +37 +D={"усиление":23, "запаздывание":12, "постоянная времени":78} +spis1=list(D) +spis2=list(D.values()) +spis1 +['усиление', 'запаздывание', 'постоянная времени'] +spis2 +[23, 12, 78] +kor=tuple(spis1)+tuple(spis2) +kor +('усиление', 'запаздывание', 'постоянная времени', 23, 12, 78) +((1768//24.8)%3)**2.4 +5.278031643091577 +((~(13&27))^14)<<2 +-32 +spis3 = ['колебат']*4 +spis3 +['колебат', 'колебат', 'колебат', 'колебат'] +'аткол' in spis3[1] + spis3[2] +True +dir(D) +['__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'] +D.keys() +dict_keys(['усиление', 'запаздывание', 'постоянная времени']) +D.values() +dict_values([23, 12, 78]) +help(D.keys) +Help on built-in function keys: + +keys() method of builtins.dict instance + Return a set-like object providing a view on the dict's keys. + +help(D.values) +Help on built-in function values: + +values() method of builtins.dict instance + Return an object providing a view on the dict's values. + +S="Создать объект - символьную строку с текстом данного предложения" +L=list(S.split()) +L +['Создать', 'объект', '-', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения'] +L[L.index("-")] = "," +l +Traceback (most recent call last): + File "", line 1, in + l +NameError: name 'l' is not defined +L +['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения'] +L.remove("данного") +L +['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'предложения'] + +``` \ No newline at end of file diff --git a/TEMA3/report.md b/TEMA3/report.md new file mode 100644 index 0000000..1d8bf48 --- /dev/null +++ b/TEMA3/report.md @@ -0,0 +1,555 @@ +# Отчет по теме 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 +