From 4d04146017b5a78683385bfceb6173999b6f82f6 Mon Sep 17 00:00:00 2001 From: Dmitry Kolomeytsev Date: Mon, 6 Oct 2025 10:11:37 +0300 Subject: [PATCH] completed additional tasks, minor changes --- TEMA3/report.md | 145 ++++++++++++++++++++++++++++++++++++++++++++++-- TEMA3/task.md | 32 ++++++----- 2 files changed, 158 insertions(+), 19 deletions(-) diff --git a/TEMA3/report.md b/TEMA3/report.md index 66628dd..61c881d 100644 --- a/TEMA3/report.md +++ b/TEMA3/report.md @@ -11,22 +11,32 @@ logiz1=bool(56) logiz1 True +type(logiz1) + logiz2=bool(0) logiz2 False +type(logiz2) + logiz3=bool("Beta") logiz3 True +type(logiz3) + logiz4=bool("") logiz4 False +type(logiz4) + logiz5=bool("Infinity") logiz5 True +type(logiz5) + ``` ### 2.2 Преобразование в целое десятичное число объекта с заданной системой счисления. @@ -36,15 +46,27 @@ True tt1=int(198.6) tt1 198 +type(tt1) + + tt2=int("-76") tt2 -76 +type(tt2) + + tt3=int("B",16) tt3 11 +type(tt3) + + tt4=int("71",8) tt4 57 +type(tt4) + + tt5=int("98.76") Traceback (most recent call last): File "", line 1, in @@ -59,18 +81,26 @@ _Объяснение последнего вызова: функция int() в flt1=float(789) flt1 789.0 +type(flt1) + flt2=float(-6.78e2) flt2 -678.0 +type(flt2) + flt3=float("Infinity") flt3 inf +type(flt3) + flt4=float("-inf") flt4 -inf +type(flt4) + ``` ### 2.3 Преобразование десятичных чисел в другие системы счисления: ```py @@ -78,14 +108,20 @@ hh=123 dv1=bin(hh) dv1 '0b1111011' +type(dv1) + vos1=oct(hh) vos1 '0o173' +type(vos1) + shs1=hex(hh) shs1 '0x7b' +type(shs1) + int(dv1,2) 123 @@ -114,6 +150,20 @@ strk5=str({"A":1,"B":2,"C":9}) strk5 "{'A': 1, 'B': 2, 'C': 9}" ``` +Создайте строку со своей фамилией и инициалами, преобразуйте её в список, затем список – в кортеж и, наконец, кортеж – в строку. + +```py +fio="Kolomeytsev D.A." +fio=list(fio) +fio +['K', 'o', 'l', 'o', 'm', 'e', 'y', 't', 's', 'e', 'v', ' ', 'D', '.', 'A', '.'] +fio=tuple(fio) +fio +('K', 'o', 'l', 'o', 'm', 'e', 'y', 't', 's', 'e', 'v', ' ', 'D', '.', 'A', '.') +fio=str(fio) +fio +"('K', 'o', 'l', 'o', 'm', 'e', 'y', 't', 's', 'e', 'v', ' ', 'D', '.', 'A', '.')" +``` ### 3.2 Преобразование элементов объекта в список с помощью функции list(<Объект>). ```py @@ -265,6 +315,36 @@ Traceback (most recent call last): c1", line 1, in + 148%c +TypeError: unsupported operand type(s) for %: 'int' and 'complex' + +14**3 +2744 +14.5**3 +3048.625 + +c**5 +(-38+41j) +``` ## 5. Операции с двоичными представлениями целых чисел. ### 5.1. Двоичная инверсия (~). Значение каждого бита в представлении числа заменяется на противоположное значение (0 на 1, 1 на 0). @@ -276,6 +356,7 @@ dv1 dv2 -10 ``` + ### 5.2. Двоичное «И» (&). Побитовое совпадение двоичных представлений чисел: ```py @@ -284,6 +365,7 @@ dv2 7&8 # 111 и 1000 = 000 0 ``` + ### 5.3. Двоичное «ИЛИ» (|). Побитовое сравнение двоичных представлений чисел и 0 получается, только если оба сравниваемых разряда равны 0: @@ -319,8 +401,44 @@ g2 3 ``` +Пример работы двух двоичных чисел из 7 знаков: +```py +a = 0b1010101 # 85 в десятичной системе +b = 0b1100100 # 100 в десятичной системе + +a +85 + +b +100 + +a<<2 +340 + +b>>2 +25 + +b +102 + +~b +-101 + +~a +-86 + +(b&a) +68 +``` + ## 6. Операции при работе с последовательностями (строками, списками, кортежами). +```py +stroka='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'] +``` + ### 6.1. Объединение последовательностей (конкатенация)(+) ```py 'Система '+'регулирования' #Соединение двух строк символов @@ -402,15 +520,24 @@ stroka+=' регулирования' ``` ### 7.3. Умножение текущего значения переменной на заданную величину (*=) или деление (/=) ```py +zz=-12 zz/=2 zz --5.0 +-6.0 zz*=5 zz --25.0 +-30.0 +zz*=5.4 +zz +-162.0 +zz//=80 +zz +-3.0 +zz**=4 +zz +81.0 ``` -Для строк операция (*=) означает повторение текущего значения объекта заданное число раз. -Попробуйте эту операцию самостоятельно. + ### 7.4.Операции деления ```py zz//=4 @@ -533,6 +660,8 @@ o Операции с множеством: ```py mnoz1={'pen','book','pen','iPhone','table','book'} +dir(mnoz1) +['__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'] 'book' in mnoz1 True 'cap' in mnoz1 @@ -541,6 +670,7 @@ False Операции со словарем: ```py dic1={'Saratov':145, 'Orel':56, 'Vologda':45} +['__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'] 'Vologda' in dic1 True 'Pskov' in dic1 @@ -571,6 +701,7 @@ False ```py w=v=10 #При таком присваивании переменные ссылаются на один и тот же объект в оперативной памяти w is v +# Числа до 500 в питоне имеют одинаковый адрес/хэш в памяти True w1=['A','B'] v1=['A','B'] @@ -636,6 +767,8 @@ spsk.count('a') #считает количество 'a' в списке ### 9.3. Методы для работы с кортежами. ```py kortezh = (1, 'a', 'b', 3, 'c', 4) +dir(kortezh) +['__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'] kortezh.count(3) #считает количество 3 в списке 1 kortezh.index('b') #выводит с каким индексом в кортеже 'b' @@ -646,6 +779,8 @@ kortezh + (5, 6) #добавляет 5, 6 в кортеж ### 9.4. Методы для работы со словарями. ```py slvr = {'a': 1, 'b': 2, 'c': 3, 'd': 4} +dir(slvr) +['__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'] slvr.keys() #получение ключей словаря dict_keys(['a', 'b', 'c', 'd']) slvr.values() #получение значений словаря @@ -665,6 +800,8 @@ slvr ### 9.5. Методы для работы с множествами. ```py mng={1,'a',2,'b',3,'c',4} +dir(mng) +['__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'] mng.add('d') #добавление в множество mng элемента 'd' mng {1, 2, 3, 'c', 4, 'a', 'b', 'd'} diff --git a/TEMA3/task.md b/TEMA3/task.md index 3783269..521e554 100644 --- a/TEMA3/task.md +++ b/TEMA3/task.md @@ -6,8 +6,7 @@ ### 1. Преобразовал восьмеричное значение 45 в целое число. ```py ->>> n='45' ->>> int(n, 8) +>>> int('45', 8) 37 ``` ### 2. Создал объект-словарь D и затем преобразовал его в два списка: ключей и значений, а затем – эти два списка преобразовал в один кортеж. Кортеж отличается от списка тем, что он неизменяемый. @@ -37,9 +36,9 @@ ``` ### 4. Сделал единое выражение, последовательно осуществляющее следующие операции: двоичное И для чисел 13 и 27, инверсия полученного значения, двоичное исключающее ИЛИ для полученного значения и числа 14, сдвиг полученного значения на два разряда влево. ```py ->>> c = ((13 & 27) ^ 14) << 2 ->>> c -28 +c = ((~(13 & 27)) ^ 14) << 2 +c +-32 ``` ### 5. Создал список с 4 одинаковыми элементами 'колебат' и написал оператор проверки наличия комбинации символов 'аткол' в результате конкатенации второго и третьего элементов этого списка. @@ -47,10 +46,7 @@ >>> spis = ['колебат'] * 4 >>> spis ['колебат', 'колебат', 'колебат', 'колебат'] ->>> concatenated = spis[1] + spis[2] ->>> concatenated -'колебатколебат' ->>> 'аткол' in concatenated +>>> 'аткол' in (spis[1] + spis[2]) True ``` ### 6. Определил список методов, доступных у ранее созданного словаря D. Поочередно использовал его методы keys и values, определил, что можно получить с применением этих методов. @@ -63,16 +59,22 @@ dict_keys(['усиление', 'запаздывание', 'постоянная dict_values([23, 12, 78]) ``` -### 7. Создала объект - символьную строку с текстом данного предложения. Из символьной строки создала список, элементами которого будут отдельные слова из созданной строки. Заменила в списке элемент «-» на «,». Удалила из списка элемент со значением «данного». Отобразила получившийся список. +### 7. Создать объект - символьную строку с текстом данного предложения. Из символьной строки создать список, элементами которого будут отдельные слова из созданной строки. Заменить в списке элемент «-» на «,». Удалить из списка элемент со значением «данного». Отобразить получившийся список. +Решение: ```py >>> strk = "Создать объект - символьную строку с текстом данного предложения." >>> strk1=strk.split() #разбитие строки на слова ->>> strk1 +strk1 ['Создать', 'объект', '-', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения.'] ->>> strk1=[strk2.replace('-', ',') for strk2 in strk1] #замена в списке элемента «-» на «,» ->>> strk1 + +strk1.index('-') +2 + +strk1[2] = ',' +strk1 ['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения.'] ->>> strk1.remove('данного') #удаление элемента со значением «данного» ->>> strk1 + +strk1.remove('данного') +strk1 ['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'предложения.'] ``` \ No newline at end of file