diff --git a/TEMA3/report.md b/TEMA3/report.md new file mode 100644 index 0000000..75b76d6 --- /dev/null +++ b/TEMA3/report.md @@ -0,0 +1,680 @@ +# Отчет по теме 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