diff --git a/TEMA3/protokol3.txt b/TEMA3/protokol3.txt new file mode 100644 index 0000000..e69de29 diff --git a/TEMA3/protokol33.py b/TEMA3/protokol33.py new file mode 100644 index 0000000..2dd33a1 --- /dev/null +++ b/TEMA3/protokol33.py @@ -0,0 +1,527 @@ +Тема 3 <Анисенков Павел Дмитриевич> +Python 3.13.6 (tags/v3.13.6:4e66535, Aug 6 2025, 14:36:00) [MSC v.1944 64 bit (AMD64)] on win32 +Enter "help" below or click "Help" above for more information. +logiz1=bool(56) +logiz2=bool(0) +logiz3=bool("Beta") +logiz4=bool("") +logiz1 +True +logiz2 +False +logiz3 +True +logiz4 +False +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' +\ + flt1=float(789) +SyntaxError: unexpected indent +flt1=float(789) +flt1 +789.0 +flt2=float(-6.78e2) +flt2 +-678.0 +flt22=float(98.76) +flt22 +98.76 +flt3=float("Infinity") +flt3 +inf +flt4=float("-inf") +flt4 +-inf +hh=123 +dv1=bin(hh) +dv1 +'0b1111011' +vos1=oct(hh) +vos1 +'0o173' +shs1=hex(hh) +shs1 +'0x7b' +int(dv1,2) +123 +int(dv1,8) +Traceback (most recent call last): + File "", line 1, in + int(dv1,8) +ValueError: invalid literal for int() with base 8: '0b1111011' +int(vos1,8) +123 +int(shs1,16) +123 +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}" +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] +spis3 = list({"A":1,"B":2,"C":9}.items()) +spis3 +[('A', 1), ('B', 2), ('C', 9)] +kort7=tuple('Строка символов') +kort7 +('С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в') + kort8=tuple(spis2) + +SyntaxError: unexpected indent +kort8=tuple(spis2) +kort8 +(124, 236, -15, 908) +kort9=tuple({"A":1,"B":2,"C":9}) +kort9 +('A', 'B', 'C') +del strk5, kort8 +strk5 +Traceback (most recent call last): + File "", line 1, in + strk5 +NameError: name 'strk5' is not defined. Did you mean: 'strk1'? +kort8 +Traceback (most recent call last): + File "", line 1, in + kort8 +NameError: name 'kort8' is not defined. Did you mean: 'kort7'? +name= "Анисенков П. Д." +namelist = list(name) +namelist +['А', 'н', 'и', 'с', 'е', 'н', 'к', 'о', 'в', ' ', 'П', '.', ' ', 'Д', '.'] +nametup = tuple(namelist) +nametup +('А', 'н', 'и', 'с', 'е', 'н', 'к', 'о', 'в', ' ', 'П', '.', ' ', 'Д', '.') +namestr = str(nametup) +namestr +"('А', 'н', 'и', 'с', 'е', 'н', 'к', 'о', 'в', ' ', 'П', '.', ' ', 'Д', '.')" +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 + +SyntaxError: unexpected indent +a=178/45 +a +3.9555555555555557 +type(a) + +b=178//45 +b +3 +c=-24.6//12.1 +c +-3.0 +d=-18//4.76468 +d +-4.0 +KeyboardInterrupt +148%33 +16 +12.6%3.8 +1.2000000000000002 +18%4.45656 +0.17376000000000147 +-18%4.45656 +4.282799999999998 +14**3 +2744 +e=2.7**3.6 +e +35.719843790663525 +g=52**22.8 +g +1.333141459723109e+39 +z1 = 3 + 4j, z2 = 1 - 2j +SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='? +z1=3+4j +z2=1-2j +z1+z2 +(4+2j) +z1-z2 +(2+6j) +z1*z2 +(11-2j) +z1/z2 +(-1+2j) +z1**2 +(-7+24j) +z1//z2 +Traceback (most recent call last): + File "", line 1, in + z1//z2 +TypeError: unsupported operand type(s) for //: 'complex' and 'complex' +z1%z2 +Traceback (most recent call last): + File "", line 1, in + z1%z2 +TypeError: unsupported operand type(s) for %: 'complex' and 'complex' +dv1=9 +dv2=~dv1 +dv2 +-10 +dv1 +9 +7&9 +1 +7&8 +0 +7|9 +15 +7|8 +15 +14|5 +15 +14:5 +SyntaxError: illegal target for annotation +14^5 +11 +h=14 +g=h<<2 +g +56 +g1=h>>1 +g1 +7 +g2=h>>2 +g2 +3 +a = 0b10110101 +b = 0b01101011 +a&b +33 +a|b +255 +a^b +222 +a<<2 +724 +b<<3 +856 +'Система '+'регулирования' +'Система регулирования' +['abc','de','fg']+['hi','jkl'] +['abc', 'de', 'fg', 'hi', 'jkl'] +('abc','de','fg')+('hi','jkl') +('abc', 'de', 'fg', 'hi', 'jkl') +'ля-'*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] +stroka='Система автоматического управления' +stroka +'Система автоматического управления' +'автомат' in stroka +True +'ку' in ['ку','-']*3 +True +'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl') +False +stroka='Температура = %g %s %g' +stroka +'Температура = %g %s %g' +stroka % (16,' меньше ',25) +'Температура = 16 меньше 25' +KeyboardInterrupt +stroka='Температура = %(zn1)g %(sravn)s %(zn2)g' +stroka +'Температура = %(zn1)g %(sravn)s %(zn2)g' +stroka % {'zn1':16,'sravn':' меньше ','zn2':25} +'Температура = 16 меньше 25' +zz=-12 +zz +-12 +zz+=5 +zz +-7 +zz-=3 +zz +-10 +stroka='Система' +stroka+=' регулирования' +stroka +'Система регулирования' +zz/=2 +zz +-5.0 +zz*=5 +zz +-25.0 +dd=56.8 +dd//= +SyntaxError: invalid syntax +dd//=2 +dd +28.0 +dd%=3 +dd +1.0 +dd+=4 +dd +5.0 +dd**=2 +dd +25.0 +w=v=10 +n1,n2,n3=(11,-3,'all') +n1 +11 +n3 +'all' +n1, n2, n3 = "11-" +n1 +'1' +n3 +'-' +n1, n2, n3 = [11, -3, 'all'] +n1 +11 +n3 +'all' +python +n1, n2, n3 = {11, -3, 'all'} +SyntaxError: multiple statements found while compiling a single statement +n1, n2, n3 = {11, -3, 'all'} +n1 +-3 +n2 +11 +n3 +'all' +n1, n2, n3 = {'a': 11, 'b': -3, 'c': 'all'} +т1 +Traceback (most recent call last): + File "", line 1, in + т1 +NameError: name 'т1' is not defined +n` +SyntaxError: invalid syntax +n1 +'a' +n2 +'b' +w==v +True +w!=v +False +ww +False +w>v +False +w<=v +True +w>=v +True +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 +a=17 +b= +SyntaxError: invalid syntax +b=6 +(a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1) +True +age = 25 +has_subscription = True +blacklist = {'spam@mail.com', 'fake@mail.com'} +user_email = "user@example.com" +access = (age >= 18) and has_subscription and (user_email not in blacklist) +access +True +w=v=10 +w is v +True +w1=['A','B'] +v1=['A','B'] +w1 is v1 +False +stroka.find('пр') +-1 +stroka.count("с") +1 +stroka.replace(' у',' автоматического у') +'Система регулирования' +stroka +'Система регулирования' +KeyboardInterrupt +spis22=stroka.split(' ') +spis22 +['Система', 'регулирования'] +stroka.upper() +'СИСТЕМА РЕГУЛИРОВАНИЯ' +stroka3=" ".join(spis22) +stroka3 +'Система регулирования' +stroka3.partition("с") +('Си', 'с', 'тема регулирования') +stroka3.rpartition("с") +('Си', 'с', 'тема регулирования') +strk1='Момент времени {}, значение = {}' +strk1 +'Момент времени {}, значение = {}' +strk1.format(1,89.7 + + ) +'Момент времени 1, значение = 89.7' +strk2='Момент времени {1}, значение = {0}:{2}' +strk2 +'Момент времени {1}, значение = {0}:{2}' +strk2.format(36.7,2,'норма!') +'Момент времени 2, значение = 36.7:норма!' +strk3='Момент времени {num}, значение = {znch}' +strk3 +'Момент времени {num}, значение = {znch}' +strk3.format(znch=89.7,num=2) +'Момент времени 2, значение = 89.7' +strk3 +'Момент времени {num}, значение = {znch}' +spsk = [10, 'hello', 3.14, True, 'world', 10, 'python'] +spsk.pop(2) +3.14 +spsk.append('c') +spsk +[10, 'hello', True, 'world', 10, 'python', 'c'] +spsk.insert(2,'a') +spsk +[10, 'hello', 'a', True, 'world', 10, 'python', 'c'] +spsk.count('a') +1 +spsk.pop(1) +'hello' +spsk +[10, 'a', True, 'world', 10, 'python', 'c'] +my_tuple = (1, 2, 3, 2, 'a', 'b', 'a', True) +my_tuple.count(2) +2 +my_tuple.insert(2,'a') +Traceback (most recent call last): + File "", line 1, in + my_tuple.insert(2,'a') +AttributeError: 'tuple' object has no attribute 'insert' +my_tuple.append('c') +Traceback (most recent call last): + File "", line 1, in + my_tuple.append('c') +AttributeError: 'tuple' object has no attribute 'append' +my_tuple.append('c') +Traceback (most recent call last): + File "", line 1, in + my_tuple.append('c') +AttributeError: 'tuple' object has no attribute 'append' + +my_dict = {'name': 'Alice', 'age': 25, 'city': 'Moscow', 'age': 26} +my_dict.count(2) +Traceback (most recent call last): + File "", line 1, in + my_dict.count(2) +AttributeError: 'dict' object has no attribute 'count' +my_dict.pop(2) +Traceback (most recent call last): + File "", line 1, in + my_dict.pop(2) +KeyError: 2 +my_dict.pop(25) +Traceback (most recent call last): + File "", line 1, in + my_dict.pop(25) +KeyError: 25 +my_dict.pop(0) +Traceback (most recent call last): + File "", line 1, in + my_dict.pop(0) +KeyError: 0 +my_dict.count(2) +Traceback (most recent call last): + File "", line 1, in + my_dict.count(2) +AttributeError: 'dict' object has no attribute 'count' +"keys():", list(my_dict.keys()) +('keys():', ['name', 'age', 'city']) +"values():", list(my_dict.values()) +('values():', ['Alice', 26, 'Moscow']) +"pop('city'):", my_dict.pop('city') +("pop('city'):", 'Moscow') +my_dict +{'name': 'Alice', 'age': 26} +set1 = {1, 2, 3, 4, 5} +set2 = {4, 5, 6, 7, 8} +"add(9):", set1.add(9) +('add(9):', None) +set1 +{1, 2, 3, 4, 5, 9} +set2.remove(3) +Traceback (most recent call last): + File "", line 1, in + set2.remove(3) +KeyError: 3 +set1.remove(3) +set1 +{1, 2, 4, 5, 9} diff --git a/TEMA3/report.md b/TEMA3/report.md new file mode 100644 index 0000000..e88579f --- /dev/null +++ b/TEMA3/report.md @@ -0,0 +1,768 @@ +# Отчет по теме 3 + +Анисенков Павел, А-01-23 + +## 1 Запуск интерактивной оболочки IDLE + +Была запущена интерактивная оболочка IDLE и создан протокол + + +## 2 Преобразование базовых типов обьектов в другие типы + +Было изучено, как преобразовывать обьекты одного типа, в обьекты другого типа. + +## 2.1 Преобразование обьектов в логический тип данных + +Было изучено, как преобразовывать обьекты типа строка и число, в обьекты логического типа. + +```py +>>>logiz1=bool(56) +>>>logiz2=bool(0) +>>>logiz3=bool("Beta") +>>>logiz4=bool("") +>>>logiz1 +True +logiz2 +False +logiz3 +True +logiz4 +False +``` + +## 2.2 Преобразование обьектов в числовой тип данных + +Было изучено, как преобразовывать обьекты типа строка и число, в обьекты целого и вещественного типа int и float. + +```py +>>>tt1=int(198.6) #Отбрасывается дробная часть +>>>tt1 +198 +>>>tt2=int("-76") #Число – в строке символов, система по умолчанию - десятичная +>>>tt2 +-76 +>>>tt3=int("B",16) #В шестнадцатиричной системе буква "В" соответствует числу 11 +>>>tt3 +11 +>>>tt4=int("71",8) #71 преобразуется в число в восьмеричной системе +>>>tt4 +57 +>>>tt5=int("98.76") #Число представлено в виде строки, но само по себе оно относится к вещественным числам (типа float), поэтому сразу невозможно его преобразовать в целое. Для такого преобразования надо сначала переопределить его как float, а уже потом как int. +Traceback (most recent call last): + File "", line 1, in + tt5=int("98.76") +ValueError: invalid literal for int() with base 10: '98.76' +>>>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) #Преобразование в строку с двоичным представлением +>>>vos1=oct(hh) # Преобразование в строку с восьмеричным представлением +>>>shs1=hex(hh) # Преобразование в строку с шестнадцатеричным представлением +>>>dv1 +'0b1111011' +>>>vos1 +'0o173' +>>>shs1 +'0x7b' +>>>int(dv1,2) +123 +>>>int(vos1, 8) +123 +>>>int(shs1, 16) +123 +``` + +## 3 Преобразование сложных типов обьектов в другие типы + +## 3.1 Преобразование элементов в строку символов + +В строку были преобразованы число, логическая переменная, список, кортеж и словарь. + +```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 Преобразование элементов в список + +Были преобразованы в список строка символов, кортеж и словарь тремя способами (включая только ключи, только значения и ключи и значения вместе). + +```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] +>>>spis3=list({"A":1,"B":2,"C":9}.items()) #Преобразование словаря в список ключи и значения +>>>spis3 +[('A', 1), ('B', 2), ('C', 9)] +``` + +## 3.3 Преобразование элементов в кортеж + +В кортеж были преобразованы строка, список и словарь. + +```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'? +>>>kort8 +Traceback (most recent call last): + File "", line 1, in + kort8 +NameError: name 'kort8' is not defined. Did you mean: 'kort7'? +>>>f_spis=list(f_str) +>>>f_kort=tuple(f_spis) +>>>f_sstr=str(f_kort) +name= "Анисенков П. Д." +namelist = list(name) +namelist +['А', 'н', 'и', 'с', 'е', 'н', 'к', 'о', 'в', ' ', 'П', '.', ' ', 'Д', '.'] +nametup = tuple(namelist) +nametup +('А', 'н', 'и', 'с', 'е', 'н', 'к', 'о', 'в', ' ', 'П', '.', ' ', 'Д', '.') +namestr = str(nametup) +namestr +"('А', 'н', 'и', 'с', 'е', 'н', 'к', 'о', 'в', ' ', 'П', '.', ' ', 'Д', '.')" +``` + +## 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! +>>>a +3.9555555555555557 +>>>type(a) + +``` + +## 4.4 Изучение деления с округлением вниз + +Был применен операнд деления с округлением вниз, деление испробовано на целых и вещественных числах и выведен тип результативной переменной. + +```py +>>>b=178//45 #Деление двух целых чисел +>>>b +3 +>>>type(b) + +>>>c=-24.6//12.1 #Деление двух вещественных чисел +>>>c +-3.0 +>>>type(c) + +>>>ddd=56.88//45 +>>>ddd +1.0 +>>>type(ddd) + +>>>eee=45//56.88 +>>>eee +0.0 +``` + +## 4.5 Изучение получения отсатка от деления + +Был применен операнд остатка от деления, операция применена по отношению к целым и вещественным числам. + +```py +>>>148%33 #Остаток от деления двух целых чисел +16 +>>>12.6%3.8 #Остаток от деления двух вещественных чисел +1.2000000000000002 +>>>18%4.45656 +0.17376000000000147 +>>>-18%4.45656 +4.282799999999998 +``` + +## 4.6 Изучение возведения в степень + +Была применена операция возведения в степень с вещественными и целыми числами. + +```py +>>>14**3 #Целое число возводится в целую степень +2744 +>>>e=2.7**3.6 +>>>e +35.719843790663525 +>>>g=52**22.8 +>>>g +1.333141459723109e+39 +``` + +Также самостоятельно были произведены операции над комплексными числами. Выяснено, что выполнимы все вышеприведенные операции, кроме деления с округлением вниз и определения остатка. + +```py +>>>z1=3+4j +>>>z2=1-2j +>>>z1+z2 +(4+2j) +>>>z1-z2 +(2+6j) +>>>z1*z2 +(11-2j) +>>>z1/z2 +(-1+2j) +>>>z1**2 +(-7+24j) +>>>z1//z2 +Traceback (most recent call last): + File "", line 1, in + z1//z2 +TypeError: unsupported operand type(s) for //: 'complex' and 'complex' +>>>z1%z2 +Traceback (most recent call last): + File "", line 1, in + z1%z2 +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 +11 +``` + 14: 1 1 1 0 + 5: 0 1 0 1 + ↓ ↓ ↓ ↓ + ^: 1 0 1 1 + выдает 1 где разные значения, 0 - где одинаковые +Число 11 получилось при переводе числа 1011 из двоичной системы в десятичную. Это можно сделать с помощью выражения: 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 = 8 + 0 + 2 + 1 = 11 + +## 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 +>>>a = 0b10110101 +>>>b = 0b01101011 +>>>a&b +33 +>>>a|b +255 +>>>a^b +222 +>>>a<<2 +724 +>>>b<<3 +856 +``` + +## 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 +>>>signal2=(0,)*3+(1,)*5+(0,)*7 +>>>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, 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 % (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-=3 # Значение уменьшается на 3 +>>>zz +-10 +>>>stroka='Система' +>>>stroka+=' регулирования' +>>>stroka +'Система регулирования' +``` + +## 7.3 Изучение умножения и деления переменной + +Переменная была умножена, а потом поделена на определенное значение. Также самостоятельно был применон этот операнд для строки, в последствии чего символы в строке продублировались столько раз, какое было умножаемое число. + +```py +>>>zz/=2 +>>>zz +-5.0 +>>>zz*=5 +>>>zz +-25.0 +>>>xxx="zz" +>>>xxx*=5 +>>>xxx +'zzzzzzzzzz' +``` + +## 7.4 Изучение деления с округлением вниз, получение остатка деления и возведение в степень + +На переменной были самостоятельно испробованы операции деления с округлением вниз, получение остатка деления и возведение в степень. + +```py +>>>dd=56.8 +>>>dd//=2 +>>>dd +28.0 +>>>dd%=3 +>>>dd +1.0 +>>>dd+=4 +>>>dd +5.0 +>>>dd**=2 +>>>dd +25.0 +``` + +## 7.5 Изучение множественного присваивания + +Разным переменным было присвоено одно значение. Также были присвоены значения переменным в одну строку с использованием кортежа, + +```py +>>>w=v=10 # Переменным присваивается одно и то же значение +>>>w +10 +>>>v +10 +>>>n1,n2,n3=(11,-3,'all') #Значения переменных берутся из кортежа, строки, списка и словаря. +>>>n1;n2;n3 +11 +-3 +'all' +>>>n1, n2, n3 = "11-" +>>>n1 +'1' +>>>n3 +'-' +>>>n1, n2, n3 = [11, -3, 'all'] +>>>n1 +11 +>>>n3 +'all' +>>>n1, n2, n3 = {11, -3, 'all'} +>>>n1 +-3 +>>>n2 +11 +>>>n3 +'all' +>>>n1, n2, n3 = {'a': 11, 'b': -3, 'c': 'all'}>>> +>>>n1 +'a' +>>>n2 +'b' +``` + +## 8 Изучение логических операций + +Были изучены и применены некоторые логические операции, а также некоторые действия, с помощью логических операций. + +## 8.1 Изучение операций сравнения + +К двум переменным были применены различные операции сравнения. + +```py +>>>w==v +True +>>>w!=v +False +>>>w>v +False +>>>w>>w<=v +True +>>>w>=v +True +``` + +## 8.2 Изучение проверки наличия элемента в обьекте с помощью логических операций + +Были созданы множество и словарь, и проверено имеются ли в них определенные элементы. + +```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 Изучение создания выражений с соединительными словами И, ИЛИ, НЕ + +Были построены выражения с соединитиельными словами И, ИЛИ, НЕ. + +```py +>>>a=17 +>>>b=-6 +>>>(a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1) +True +>>>(5>6) and ('kazan' in dic1) and not ('Linchik' in mnoz1) +False +>>>(5>6) and (7>5) or ("Saratov" in dic1) +True +``` + +## 8.4 Изучение проверки ссылок переменных на наличие одного и того же обьекта + +Было проверено, являются ли созданные обьекты одними и теми же обьектами в памяти. + +```py +>>>w=v=10 #При таком присваивании переменные ссылаются на один и тот же объект в оперативной памяти +>>>w is v +True +>>>w1=['A','B'] +>>>v1=['A','B'] +>>>w1 is v1 #В данном случае эти переменные не записаны в один адрес памяти, питон создает для списков два разных обьекта, так как список это изменяемый тип и так как значение для переменных присваивалось по-отдельности. Так питон гарантирует, что изменение одного списка не повлияет на другой. +False +``` + +## 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 +>>>spsk = [10, 'hello', 3.14, True, 'world', 10, 'python'] +>>>spsk.pop(2) +3.14 +>>>spsk.append('c') +>>>spsk +[10, 'hello', True, 'world', 10, 'python', 'c'] +>>>spsk.insert(2,'a') +>>>spsk +[10, 'hello', 'a', True, 'world', 10, 'python', 'c'] +>>>spsk.count('a') +1 +>>>spsk.pop(1) +'hello' +>>>spsk +[10, 'a', True, 'world', 10, 'python', 'c'] +``` + +## 9.3 Изучение методов применимых к кортежам + +Были применены разные методы для работы с кортажами и применены. + +```py +>>>my_tuple = (1, 2, 3, 2, 'a', 'b', 'a', True) +>>>my_tuple.count(2) +2 +>>>my_tuple.insert(2,'a') +Traceback (most recent call last): + File "", line 1, in + my_tuple.insert(2,'a') +AttributeError: 'tuple' object has no attribute 'insert' +>>>my_tuple.append('c') +Traceback (most recent call last): + File "", line 1, in + my_tuple.append('c') +AttributeError: 'tuple' object has no attribute 'append' +>>>my_tuple.append('c') +Traceback (most recent call last): + File "", line 1, in + my_tuple.append('c') +AttributeError: 'tuple' object has no attribute 'append' +``` + +## 9.4 Изучение методов применимых к словарям + +Были применены разные методы для работы со словарями и применен один из них. + +```py +>>>my_dict = {'name': 'Alice', 'age': 25, 'city': 'Moscow', 'age': 26} +>>>my_dict.count(2) +Traceback (most recent call last): + File "", line 1, in + my_dict.count(2) +AttributeError: 'dict' object has no attribute 'count' +>>>my_dict.pop(2) +Traceback (most recent call last): + File "", line 1, in + my_dict.pop(2) +KeyError: 2 +>>>my_dict.pop(25) +Traceback (most recent call last): + File "", line 1, in + my_dict.pop(25) +KeyError: 25 +>>>my_dict.pop(0) +Traceback (most recent call last): + File "", line 1, in + my_dict.pop(0) +KeyError: 0 +>>>my_dict.count(2) +Traceback (most recent call last): + File "", line 1, in + my_dict.count(2) +AttributeError: 'dict' object has no attribute 'count' +"keys():", list(my_dict.keys()) +('keys():', ['name', 'age', 'city']) +"values():", list(my_dict.values()) +('values():', ['Alice', 26, 'Moscow']) +"pop('city'):", my_dict.pop('city') +("pop('city'):", 'Moscow') +``` + +## 10 Завершение работы в IDLE + +Был завершен сеанс в среде IDLE. \ No newline at end of file diff --git a/TEMA3/task.md b/TEMA3/task.md new file mode 100644 index 0000000..f7fd2ac --- /dev/null +++ b/TEMA3/task.md @@ -0,0 +1,78 @@ +# Общее контрольное задание по теме 3 + +Анисенков Павел, А-01-23 + +## Задание +Реализовать, записать в текстовый файл и проанализировать результаты последовательности инструкций, выполняющих следующие действия: + + • Преобразовать восьмеричное значение 45 в целое число. + + • Создать объект-словарь D со значениями {"усиление":23, "запаздывание":12, "постоянная времени":78} и затем осуществить его преобразование в два списка: ключей и значений, а затем – эти два списка преобразовать в один кортеж. Чем отличается кортеж от списка? + + • Напишите и выполните единое выражение, осуществляющее деление числа 1768 на 24.8 с округлением вниз, с определением после этого остатка от деления получившегося значения на 3 и затем возведения результата в степень 2.4. + + • Напишите и выполните единое выражение, последовательно осуществляющее следующие операции: двоичное И для чисел 13 и 27, инверсия полученного значения, двоичное исключающее ИЛИ для полученного значения и числа 14, сдвиг полученного значения на два разряда влево. + + • Создать список с 4 одинаковыми элементами 'колебат' и написать оператор проверки наличия комбинации символов 'аткол' в результате конкатенации второго и третьего элементов этого списка. + +• Определить список методов, доступных у ранее созданного словаря D. Поочередно использовать его методы keys и values, определить, что можно получить с применением этих методов. + + • Создать объект - символьную строку с текстом данного предложения. Из символьной строки создать список, элементами которого будут отдельные слова из созданной строки. Заменить в списке элемент «-» на «,». Удалить из списка элемент со значением «данного». Отобразить получившийся список. + +## Решение + +```py +>>>a = int("45", 8) +>>>a +37 + +>>>D={"усиление":23, "запаздывание":12, "постоянная времени":78} +>>>spis1=list(D) +>>>spis1 +['усиление', 'запаздывание', 'постоянная времени'] +>>>spis2=list(D.values()) +>>>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=["колебат", "колебат", "колебат", "колебат" ] +>>>'аткол' 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'] +>>>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. + +>>>D.keys() #Этот метод отображает ключи словаря +dict_keys(['усиление', 'запаздывание', 'постоянная времени']) +>>>D.values() #Этот метод отображает значения словаря +dict_values([23, 12, 78]) + +>>>S="Создать объект - символьную строку с текстом данного предложения" +>>>L=list(S.split()) +>>>L +['Создать', 'объект', '-', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения'] +>>>L[L.index("-")] = "," +>>>L +['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения'] +>>>L.remove("данного") +>>>L +['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'предложения'] +``` \ No newline at end of file