diff --git a/TEMA0/task.md b/TEMA0/task.md index 05657aa..43cce21 100644 --- a/TEMA0/task.md +++ b/TEMA0/task.md @@ -1,15 +1,10 @@ -# Общее контрольное задание по теме 0 +# Общее контрольное задание по теме -Иванов Иван, А-01-25 +Махнов Георгий, А-01-23 ## Задание -Создать переменную `name`, содержащую ваше имя. Определить тип этой переменной. + ## Решение -```py ->>> name = 'Иван' ->>> type(name) -'str' -``` diff --git a/TEMA3/report.md b/TEMA3/report.md new file mode 100644 index 0000000..18af1ea --- /dev/null +++ b/TEMA3/report.md @@ -0,0 +1,486 @@ +# Отчет по теме 3 + +Махнов Георгий, А-01-23 + +## Тема 3. Операции с объектами + +## Задание 2 Преобразование простых базовых типов объектов. +### 2.1 +``` +>>> logiz1=bool(56) +>>> logiz2=bool(0) +>>> logiz3=bool("Beta") +>>> logiz4=bool("") +>>> +>>> type(logiz1) + +>>> type(logiz2) + +>>> type(logiz3) + +>>> type(logiz4) + +``` +### 2.2 +``` +>>> tt1=int(198.6) #Отбрасывается дробная часть +>>> tt2=int("-76") +>>> tt3=int("B",16) +>>> tt3=int("B",16) +>>> tt4=int("71",8) +>>> tt1 +198 +>>> tt2 +-76 +>>> tt3 +11 +>>> tt4 +57 +>>> tt5=int("98.76") +Traceback (most recent call last): + File "", line 1, in +ValueError: invalid literal for int() with base 10: '98.76' +>>> flt1=float(789) +>>> flt2=float(-6.78e2) +>>> flt3=float("Infinity") +>>> flt4=float("-inf") +>>> flt1 +789.0 +>>> flt2 +-678.0 +>>> flt3 +inf +>>> flt4 +-inf +``` +### 2.3 +``` +>>> hh=123 +>>> dv1=bin(hh) +>>> vos1=oct(hh) +>>> shs1=hex(hh) +>>> hh +123 +>>> dv1 +'0b1111011' +>>> vos1 +'0o173' +>>> shs1 +'0x7b' +>>> int(dv1, 2) +123 +>>> int(vos1, 8) +123 +>>> int(shs1, 16) +123 +``` +## Задание 3.Изучим преобразования более сложных базовых типов объектов +### 3.1 +``` +>>> strk1=str(23.6) +>>> strk2=str(logiz3) +>>> strk3=str(["A","B","C"]) +>>> strk4=str(("A","B","C")) +>>> strk5=str({"A":1,"B":2,"C":9}) +>>> strk1 +'23.6' +>>> strk2 +'True' +>>> strk3 +"['A', 'B', 'C']" +>>> strk4 +"('A', 'B', 'C')" +>>> strk5 +"{'A': 1, 'B': 2, 'C': 9}" +``` +### 3.2 +``` +>>> spis2=list((124,236,-15,908)) +>>> spis3=list({"A":1,"B":2,"C":9}) +>>> spis1 +['С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в'] +>>> spis2 +[124, 236, -15, 908] +>>> spis3 +['A', 'B', 'C'] +>>> spis_val = list({"A":1,"B":2,"C":9}.values()) +>>> spis_val +[1, 2, 9] +``` +### 3.3 +``` +>>> kort7=tuple('Строка символов') +>>> kort8=tuple(spis2) +>>> kort9=tuple({"A":1,"B":2,"C":9}) +>>> kort7 +('С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в') +>>> kort8 +(124, 236, -15, 908) +>>> kort9 +('A', 'B', 'C') +``` +### 3.4 +``` +>>> del strk5, kort8 +>>> strk5, kort8 +Traceback (most recent call last): + File "", line 1, in +NameError: name 'strk5' is not defined. Did you mean: 'strk1'? +>>> kort8 +Traceback (most recent call last): + File "", line 1, in +NameError: name 'kort8' is not defined. Did you mean: 'kort7'? +``` +## Задание 4 Арифмитические операции +### 4.1 Сложение и вычитание (+ и -) +``` +>>> 12+7+90 +109 +>>> 5.689e-1 - 0.456 +0.11289999999999994 +>>> 23.6+54 +77.6 +>>> 14-56.7+89 +46.3 +``` +### 4.2 +``` +>>> -6.7*12 +-80.4 +``` +### 4.3 +``` +>>> -234.5/6 +-39.083333333333336 +>>> a=178/45 +>>> type(a) + +>>> a +3.9555555555555557 +``` +### 4.4 +``` +>>> b=178//45 +>>> c=-24.6//12.1 +>>> b, c +(3, -3.0) +>>> bc = 115//34 +>>> bc +3 +``` +### 4.5 +``` +>>> 148%33 +16 +>>> 12.6%3.8 +1.2000000000000002 +``` +### 4.6 +``` +>>> 14**3 +2744 +>>> e = 2.7**3.6 +>>> e +35.719843790663525 +>>> compl = complex(3, 6) +>>> compl +(3+6j) +>>> compl**2 +(-27+36j) +>>> compl%33 +Traceback (most recent call last): + File "", line 1, in +TypeError: unsupported operand type(s) for %: 'complex' and 'int' +>>> compl//3 +Traceback (most recent call last): + File "", line 1, in +TypeError: unsupported operand type(s) for //: 'complex' and 'int' +>>> compl/3 +(1+2j) +>>> compl+13 +(16+6j) +>>> compl+11.4 +(14.4+6j) +``` +## Задание 5 Операции с двоичными представлениями целых чисел +### 5.1 +``` +>>> dv1 = 9 +>>> dv2 = ~dv1 +>>> dv2 +-10 +``` +### 5.2 +``` +>>> 7&9 +1 +>>> 7&8 +0 +``` +### 5.3 +``` +>>> 7|9 +15 +>>> 7|8 +15 +>>> 14|5 +15 +``` +### 5.4 +``` +>> 14^5 +11 +``` +### 5.5 +``` +>>> h=14 +>>> g = h<<2 +>>> g +56 +>>> bin(g) +'0b111000' +>>> g1=h>>1 +>>> g1 +7 +>>> g2=h>>2 +>>> g2 +3 +``` +## Задание 6. Операции при работе с последовательностями (строками, списками, кортежами). +### 6.1 +``` +>>> 'Система ' +'регулирования' +'Система регулирования' +>>> ['abc','de','fg']+['hi','jkl'] +['abc', 'de', 'fg', 'hi', 'jkl'] +>>> ('abc','de','fg')+('hi','jkl') +('abc', 'de', 'fg', 'hi', 'jkl') +``` +### 6.2 +``` +>>> 'ля-'*5 +'ля-ля-ля-ля-ля-' +>>> ['ку','-']*3 +['ку', '-', 'ку', '-', 'ку', '-'] +>>> ('кис','-')*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 +``` +>>> stroka='Система автоматического управления' +>>> 'автомат' in stroka +True +>>> 'ку' in ['ку','-']*3 +True +>>> 'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl') +False +``` +### 6.4 +#### Пример 1 +``` +>>> stroka='Температура = %g %s %g' +>>> stroka +'Температура = %g %s %g' +>>> stroka % (16,' меньше ',25) +'Температура = 16 меньше 25' +``` +#### Пример 2 +``` +>>> stroka='Температура = %(zn1)g %(sravn)s %(zn2)g' +>>> stroka % {'zn1':16,'sravn':' меньше ','zn2':25} +'Температура = 16 меньше 25' +``` +## Задание 7 Оператор присваивания +### 7.1 +``` +>>> zz = -12 +>>> zz +-12 +``` +### 7.2 +``` +>>> zz+=5 +>>> zz +-7 +>>> zz-=3 +>>> zz +-10 +>>> stroka='Система' +>>> stroka+=' регулирования' +>>> stroka +'Система регулирования' +``` +### 7.3 +``` +>>> zz/=2 +>>> zz +-5.0 +>>> zz*=5 +>>> zz +-25.0 +``` +### 7.4 +``` +>>> zz//=5 +>>> zz +-5.0 +>>> zz%=2 +>>> zz +1.0 +>>> zz+=1 +>>> zz**=3 +>>> zz +8.0 +``` +### 7.5 +``` +>>> w=v=10 +>>> w,v +(10, 10) +>>> n1,n2,n3=(11,-3,'all') +>>> n1,n2,n3 +(11, -3, 'all') +>>> w=v=[1,2,3] +>>> w,v +([1, 2, 3], [1, 2, 3]) +>>> w=v="str" +>>> w,v +('str', 'str') +>>> w=v={1:3, 2:8} +>>> w,v +({1: 3, 2: 8}, {1: 3, 2: 8}) +>>> w=v={1,2,3} +>>> w,v +({1, 2, 3}, {1, 2, 3}) +``` +## Задание 8 Операции сравнение: равенство (==), не равно (!=), меньше (<), больше (>), меньше или равно (<=), больше или равно (>=) – придумайте примеры этих операций. Сравните ранее созданные переменные w и v. +### 8.1 +``` +>>> 1==1 +True +>>> 1!=1 +False +>>> 1<1 +False +>>> 1>1 +False +>>> 1<=1 +True +>>> 1>=1 +True +>>> w==v +True +``` +### 8.2 +``` +>>> 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 +``` +>>> a=17 +>>> b=-6 +>>> (a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1) +True +>>> (a=b) and (a==b) +``` +### 8.4 +``` +>>> w=v=10 +>>> w is v +True +>>> w1 = ["A", "B"] +>>> v1 = ["A", "B"] +>>> w1 is v1 +False +``` +w1 и v1 не являются одним и тем же объектом в памяти, поэтому is выдал ответ False +## Задание 9 +``` +>>> 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 +``` +>>> stroka.find('пр') +5 +>>> stroka.count("с") +4 +>>> stroka.replace(' у',' автоматического у') +'Микропроцессорная система автоматического управления' +>>> spis22=stroka.split(' ') +>>> stroka.upper() +'МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ' +>>> stroka3=" ".join(spis22) +>>> stroka3.partition("с") +('Микропроце', 'с', 'сорная система управления') +>>> stroka3.rpartition("с") +('Микропроцессорная си', 'с', 'тема управления') +>>> 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.format(znch=89.7,num=2) +'Момент времени 2, значение = 89.7' +``` +### 9.2 +``` +>>> spsk = [23,56,"str", 10, True] +>>> 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.append('c') +>>> spsk.insert(2,'a') +>>> spsk.count('a') +1 +>>> spsk +[23, 56, 'a', 10, True, 'c'] +``` +### 9.3 +``` +>>> my_cort = (1, "hi", 13, 5,86) +>>> dir(my_cort) +['__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'] +>>> my_cort.count(13) +1 +>>> my_cort.index("hi") +1 +``` +### 9.4 +``` +>>> my_dict = {"math":13, "physics": 11, "history": 15} +>>> dir(my_dict) +['__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'] +>>> my_set = {31, 12, "set", 1,45} +>>> dir(my_set) +['__and__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', +'__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', +'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update'] +``` \ No newline at end of file diff --git a/TEMA3/task.md b/TEMA3/task.md new file mode 100644 index 0000000..5ef85a5 --- /dev/null +++ b/TEMA3/task.md @@ -0,0 +1,55 @@ +# Общее контрольное задание по теме 3 + +Махнов Георгий, А-01-23 + +## Задание + +Реализовать, записать в текстовый файл и проанализировать результаты последовательности ин-струкций, выполняющих следующие действия: +• Преобразовать восьмеричное значение 45 в целое число. +• Создать объект-словарь D со значениями {"усиление":23, "запаздывание":12, "постоянная времени":78} и затем осуществить его преобразование в два списка: ключей и значений, а затем – эти два списка преобразовать в один кортеж. Чем отличается кортеж от списка? +• Напишите и выполните единое выражение, осуществляющее деление числа 1768 на 24.8 с округлением вниз, с определением после этого остатка от деления получившегося значения на 3 и затем возведения результата в степень 2.4. +• Напишите и выполните единое выражение, последовательно осуществляющее следующие операции: двоичное И для чисел 13 и 27, инверсия полученного значения, двоичное исключающее ИЛИ для полученного значения и числа 14, сдвиг полученного значения на два разряда влево. +• Создать список с 4 одинаковыми элементами 'колебат' и написать оператор проверки наличия комбинации символов 'аткол' в результате конкатенации второго и третьего элементов этого списка. +• Определить список методов, доступных у ранее созданного словаря D. Поочередно использовать его методы keys и values, определить, что можно получить с применением этих методов. +• Создать объект - символьную строку с текстом данного предложения. Из символьной строки создать список, элементами которого будут отдельные слова из созданной строки. Заменить в списке элемент «-» на «,». Удалить из списка элемент со значением «данного». Отобразить получившийся список. + + +## Решение + +``` +>>> int("45", 8) +37 +>>> D = {"усиление":23, "запаздывание":12, "постоянная времени":78} +>>> D +{'усиление': 23, 'запаздывание': 12, 'постоянная времени': 78} +>>> keys_d = list(D.keys()) +>>> values_d = list(D.values()) +>>> keys_d, values_d +(['усиление', 'запаздывание', 'постоянная времени'], [23, 12, 78]) +>>> tuple_d = tuple(keys_d + values_d) +>>> tuple_d +('усиление', 'запаздывание', 'постоянная времени', 23, 12, 78) +``` +Кортежи являются неизменяемыми, в то время как списки можно изменить. +``` +>>> ((1768//24.8)%3)**2.4 +5.278031643091577 +>>> ((~(13 & 27)) ^ 14) << 2 +-32 +>>> kolebat = ["колебат"]*4 +>>> kolebat +['колебат', 'колебат', 'колебат', 'колебат'] +>>> 'колебат' in (kolebat[1]+kolebat[2]) +True +>>> D.keys() +dict_keys(['усиление', 'запаздывание', 'постоянная времени']) +>>> D.values() +dict_values([23, 12, 78]) +>>> str_d = "Создать объект - символьную строку с текстом данного предложения." +>>> str_list = str_d.split() +>>> str_list +>>> str_list[str_list.index("-")] = "," +>>> str_list.remove("данного") +>>> str_list +['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'предложения.'] +```