diff --git a/TEMA3/report.md b/TEMA3/report.md index 20e0dcf..221723a 100644 --- a/TEMA3/report.md +++ b/TEMA3/report.md @@ -4,4 +4,410 @@ ## Тема 3. Операции с объектами -## 1-2. Преобразование простых типов объектов \ No newline at end of file +## 1-2. Преобразование простых типов объектов + +### 2.1 Преобразование в логический тип с помощью функции bool(<Объект>): +```py +logiz1=bool(56) +logiz1 +True + +logiz2=bool(0) +logiz2 +False + +logiz3=bool("Beta") +logiz3 +True + +logiz4=bool("") +logiz4 +False + +logiz5=bool("Infinity") +logiz5 +True +``` + +### 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' +``` +_Объяснение последнего вызова: функция int() в Python принимает только строки, которые представляют целые числа без десятичной части. Когда программа пытается выполнить int("98.76"), Python обнаруживает символ точки (.) в строке и не может интерпретировать её как допустимое целое число._ + +Преобразование целых чисел или строк символов в вещественное число. Преобразования выполняются с помощью функции float(<Объект>). +Примеры преобразований: +```py +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 +``` +## 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'] +``` + +### 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') +# Извлекаются только ключи +tuple({"A":1,"B":2,"C":9}.values()) +(1, 2, 9) +tuple({"A":1,"B":2,"C":9}.items()) +(('A', 1), ('B', 2), ('C', 9)) +``` +### 3.4. Удаление объектов +```py +dir() +['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'dv1', 'flt1', 'flt2', 'flt3', 'flt4', 'hh', 'kort7', 'kort8', 'kort9', 'logiz1', 'logiz2', 'logiz3', 'logiz4', 'logiz5', 'shs1', 'spis1', 'spis2', 'spis3', 'strk1', 'strk2', 'strk3', 'strk4', 'strk5', 'tt1', 'tt2', 'tt3', 'tt4', 'vos1'] +del strk5, kort8 +dir() +['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'dv1', 'flt1', 'flt2', 'flt3', 'flt4', 'hh', 'kort7', 'kort9', 'logiz1', 'logiz2', 'logiz3', 'logiz4', 'logiz5', 'shs1', 'spis1', 'spis2', 'spis3', 'strk1', 'strk2', 'strk3', 'strk4', 'tt1', 'tt2', 'tt3', 'tt4', 'vos1'] +``` + +## 4. Арифметические операции +```py +12+7+90 +109 + +5.689e-1 - 0.456 +0.11289999999999994 + +23.6+54 +77.6 + +14-56.7+89 +46.3 + +-6.7*12 +-80.4 + +-234.5/6 +-39.083333333333336 + +a=178/45 +a +3.9555555555555557 + +b=178//45 +b +3 + +c=-24.6//12.1 +c +-3.0 + +148%33 +16 + +12.6%3.8 +1.2000000000000002 + +14**3 +2744 + +e=2.7**3.6 +e +35.719843790663525 +``` +Операции с комплексными числами: +```py +# Операции с комплексными числами +c1=3+4j +c2=1+2j + +# Сложение - работает +c1+c2 +(4+6j) + +# Вычитание - работает +c1-c2 +(2+2j) + +# Умножение - работает +c1*c2 +(-5+10j) + +# Деление - работает +c1/c2 +(2.2-0.4j) + +# Возведение в степень - работает +c1**2 +(-7+24j) +c2**3 +(-11-2j) +2**c1 +(-0.2248450953661021+0.11208386718098048j) + +# Смешанные операции - работают +c1+5 +(8+4j) +3*c2 +(3+6j) +c1**2.5 +(-55.32248306929338+48.80907018181927j) + +# Операции, которые НЕ работают с комплексными числами: + +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>c2 +Traceback (most recent call last): + File "", line 1, in + c1>c2 +TypeError: '>' not supported between instances of 'complex' and 'complex' + +c1", line 1, in + c1>) с +дополнением нулями, соответственно справа или слева. +```py +h=14 #Двоичное представление = 1110 +g=h<<2 # Новое двоичное представление =111000 +g +56 +g1=h>>1 # Новое двоичное представление= 0111 +g1 +7 +g2=h>>2 # Новое двоичное представление= 0011 +g2 +3 +``` + +## 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='Система автоматического управления' +'автомат' in stroka #Наличие подстроки в строке +'ку' in ['ку','-']*3 #Наличие контекста в списке +'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl') #Наличие контекста в кортеже +``` +### 6.4.Подстановка значений в строку с помощью оператора «%» +```py +# Пример 1. +stroka='Температура = %g %s %g' +stroka % (16,' меньше ',25) +# Пример 2. Вставка с использованием данных из словаря. +stroka='Температура = %(zn1)g %(sravn)s %(zn2)g' +stroka % {'zn1':16,'sravn':' меньше ','zn2':25} +``` + +```py + +``` +```py + +``` +```py + +``` +```py + +``` +```py + +``` +```py + +``` +```py + +``` +```py + +``` +```py + +``` +```py + +``` +```py + +``` +```py + +``` +```py + +``` +```py + +``` +```py + +``` +```py + +``` +