From a875a20a4f91032ea57b7306b8eb6fb465d66ecf Mon Sep 17 00:00:00 2001 From: TimoshenkoAA Date: Sun, 14 Sep 2025 08:29:51 +0000 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B2=20'TEM?= =?UTF-8?q?A2'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TEMA2/report2.md | 595 +++++++++++++++++++++++++++++++++++++++++++++++ TEMA2/task2.md | 52 +++++ 2 files changed, 647 insertions(+) create mode 100644 TEMA2/report2.md create mode 100644 TEMA2/task2.md diff --git a/TEMA2/report2.md b/TEMA2/report2.md new file mode 100644 index 0000000..6429d07 --- /dev/null +++ b/TEMA2/report2.md @@ -0,0 +1,595 @@ +#Протокол ПО АС по теме 2 +#Выполнил: Тимошенко А.А. +#Проверил : Козлюк Д. А. + +##Пункт 1 + +Рабочая среда настроена на нахождение в нужной директории: +import os +os.chdir("C:/Users/mapon/OneDrive/Рабочий стол/ПО АС/ТЕМА2") + +##Пункт 2 + +Создадим два простых объекта - переменные f1 и f2. Это можно сделать в одну строку: +f1=16;f2=3 + +Можно вывести эти переменные через запятую. Тогда они будут отображены как кортеж: +f1, f2 +(16, 3) +Или через точку с запятой. тогда друг за другом: +f1;f2 +16 +3 + +Функция dir() покажет, какие объекты находятся в текущем рабочем пространстве: +dir() +['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'f1', 'f2', 'os'] + +Еще эта функция может показать атрибуты объекта: +dir(f1) +['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'as_integer_ratio', 'bit_count', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'is_integer', 'numerator', 'real', 'to_bytes'] + +Для определения классовой принадлежности любого объекта следует использовать функцию type(): +type(f2) + + +Удалим объекты из рабочего пространства: + +del f1, f2 +dir() +['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'os'] + +##Пункт 3 + +Правила именования объектов: + +gg1 = 1.6 +hh1 = 'example' +73sr = 3 +SyntaxError: invalid decimal literal - ошибка, т.к. имя не может начинаться с числа +and = 7 +SyntaxError: invalid syntax - ошибка, т.к. имя не может совпадать с ключевым словом языка + +##Пункт 4 + +Можно просмотреть все ключевые слова: + +import keyword +keyword.kwlist +['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'] + +keyWordList = keyword.kwlist +keyWordList +['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'] +type(keyWordList) + + +##Пункт 5 + +import builtins +dir(builtins) +['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BaseExceptionGroup', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EncodingWarning', 'EnvironmentError', 'Exception', 'ExceptionGroup', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'PythonFinalizationError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '_', '_IncompleteInputError', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'aiter', 'all', 'anext', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip'] + +Среди этих имен есть полезные функции, например: + +Взятие модуля +abs(-5) +5 +Длина объекта +len([1,2,3]) +3 +Максимум значений +max(14,8) +14 +Минимум значений +min(15,0) +0 +Возведение в степень +pow(5,2) +25 +Можно возводить в степень по модулю +pow(5, 2, 2) +1 +Округление +round(3,124) +3 +Можно указать порядок, до которого округляем (по умолчанию - до целого) +round(4.87945, 2) +4.88 +Суммирование +sum([7,3,5]) +15 +Можно указать еще и начальное значение +sum([7,3,5],7) +22 +Сортировка по возрастанию или по убыванию: +sorted ([3, 7, 9, 75, 0, -1]) +[-1, 0, 3, 7, 9, 75] + +Объединение объектов в кортеж (возвращается указатель на участок памяти) +sorted ([3, 7, 9, 75, 0, -1], reverse = True) +[75, 9, 7, 3, 0, -1] +list1 = [1,2,3] +list2 = [4,5,6] +zip(list1, list2) + +list(zipped) +Это итератор - указатель на объект памяти. Чтобы увидеть сам кортеж, итератор надо +преобразовать в другой объект +>>> list(zipped) +[(1, 4), (2, 5), (3, 6)] + +6. Python - регистрочувствительный язык + +Gg1 = 45 +gg1, Gg1 +(1.6, 45) +gg1 == Gg1 +False + +7.1 Логический тип: +bb1 = True +bb2 = False +type(bb1) + +7.2 Целое число (десятичное) +ii1 = 1234567890 +type(ii1) + +Экспоненциальная форма записи числа +ff1 = 8.987e-12 +type(ff1) + +Двоичное число (префикс 0b - binary) +dv1 = 0b1100101 +type(bb1) + +Восьмеричное число (0о - octal) +vsm1 = 0o52765 +type(vsm1) + +Шестнадцатеричное число (0х - hexadecimal) +shest1 = 0x7109af6 +type(shest1) + +Комплексное число +cc1 = 2 - 3j +type(cc1) + +a = 3.67 +b = 0.45 +cc2 = complex(a,b) +cc2 +(3.67+0.45j) +type(cc2) + + +7.3 Строковые данные + +Одинарные и двойные кавычки взаимозаменяемы, но если открыта одинарная, то закрыта тоже +должна быть одинарная +ss1 = "Это - строка символов" +ss2 = "Это - строка символов" +ss1 == ss2 +True +ss1a = "Это - \"строка символов\", \n \t выводимая на двух строках" +print(ss1a) +Это - "строка символов", + выводимая на двух строках +ss1b = 'Меня зовут: \n Тимошенко А.А.' +print(ss1b) +Меня зовут: + Тимошенко А.А. + +Обратимся к отдельным элементам с помощью квадратных кавычек +(нумерация с нуля): +Большую строку можно записать в тройных кавычках: +mnogo="""Нетрудно заметить , что в результате операции +над числами разных типов получается число, +имеющее более сложный тип из тех, которые участвуют в операции.""" +print(mnogo) +Нетрудно заметить , что в результате операции над числами разных типов получается число, имеющее более сложный тип из тех, которые участвуют в операции. + +Обратимся к отдельным элементам с помощью квадратных кавычек +(нумерация с нуля): +mnogo[3] +'р' +ss1b[-1] - первый с конца +'.' + +Срезы: +ss1[6:9] +'стр' +ss1[3:17:2] +' тоасм' +ss1[5:-8] +' строка ' +Задав шаг -1, можно вывести строку в обратном порядке: +ss1[::-1] +'воловмис акортс - отЭ' + +К элементу можно обратиться как по нумерации с начала, так и с конца: +ss1[17:3:-2] +'омсаот ' +ss1[-4:3:-2] +'омсаот ' + +Строка - неизменяемый тип данных: +ss1[4] = "=" +Traceback (most recent call last): + File "", line 1, in + ss1[4] = "=" +TypeError: 'str' object does not support item assignment +ss1b_cut = ss1b [::-2] + +Но если возникает необходимость изменить строку, то можно пересобрать +ее из исходной строки: +ss1=ss1[:4]+'='+ss1[5:] +ss1 +'Это = строка символов' + +Новый объект на основе среза из старого: +ss1b_cut = ss1b [::-2] +ss1b_cut +'.. кеои твзяе' + +Собственное создание разных типов данных: + +num10 = 26 +type(num10) + + +num16 = hex(num10) +num16 +'0x1a' +type(num16) + +KeyboardInterrupt +str1 = str(num10) + ' в десятичной - это ' + str(num16) + ' в шестнадцатеричной ' +str1 +'26 в десятичной - это 0x1a в шестнадцатеричной ' +str1[5:16:3] + +'дячй' + +8. Списки, кортежи, словари, множества + +Список list - изменяемый тип данных. Это упорядоченная последовательность из элементов +одного или разных типов. + +spis1 = ["111", 'spisok', 5 - 9j] + +stup=[0,0,1,1,1,1,1,1,1] + +stup +[0, 0, 1, 1, 1, 1, 1, 1, 1] +spis=[1,2,3,4,5,6,7,8,9,10] +spis +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +spis[-1] +10 +spis1[-1] +(5-9j) +stup[-8::2] +[0, 1, 1, 1] +spis1[1]='Список' +spis1 +['111', 'Список', (5-9j)] +len(spis1) +3 + +Методы списков: + + 1. Добавление в конец (append) + +help(spis1.append) +Help on built-in function append: + +append(object, /) method of builtins.list instance + Append object to the end of the list. + +spis1.append('New item') +spis1 +['111', 'Список', (5-9j), 'New item'] +spis1+['New item'] + +Только возвращает результат, но не фиксирует такое значение! + +['111', 'Список', (5-9j), 'New item', 'New item'] +spis1 +['111', 'Список', (5-9j), 'New item'] +Конкатенация строк: +spis1 += ss1b +spis1 +['111', 'Список', (5-9j), 'New item', 'М', 'е', 'н', 'я', ' ', 'з', 'о', 'в', 'у', 'т', ':', ' ', '\n', ' ', 'Т', 'и', 'м', 'о', 'ш', 'е', 'н', 'к', 'о', ' ', 'А', '.', 'А', '.'] +spis1 = [111, 'Список', (5-9j), 'New item'] + +spis1.append(ss1b) +spis1 +[111, 'Список', (5-9j), 'New item', 'Меня зовут: \n Тимошенко А.А.'] + +2. Удаление элемента по индексу (pop): + +spis1.pop(1) +'Список' +spis1 +[111, (5-9j), 'New item', 'Меня зовут: \n Тимошенко А.А.'] +Если указать индекс, которого нет: + +spis1.pop(7) +Traceback (most recent call last): + File "", line 1, in + spis1.pop(7) +IndexError: pop index out of range + +3. Вставка элемента в определенное место по индексу (insert) + +help(spis1.insert) +Help on built-in function insert: + +insert(index, object, /) method of builtins.list instance + Insert object before index. + +spis1.insert(2, "hello") +spis1 +[111, (5-9j), 'hello', 'New item', 'Меня зовут: \n Тимошенко А.А.'] + +Если указать число большее чем длина списка, то просто вставится в конец: + +spis1.insert(8, "test") +spis1 +[111, (5-9j), 'hello', 'New item', 'Меня зовут: \n Тимошенко А.А.', 'test'] + +4. Удаление элемента по значению (remove) + +help(spis1.remove) + +Help on built-in function remove: + +remove(value, /) method of builtins.list instance + Remove first occurrence of value. + + Raises ValueError if the value is not present. + +spis1.remove(111) +spis1 +[(5-9j), 'hello', 'New item', 'Меня зовут: \n Тимошенко А.А.', 'test'] +spis1.remove('kitten') + +Traceback (most recent call last): + File "", line 1, in + spis1.remove('kitten') +help(spis1.extend) + +5. Добавление элементов объекта в конец другого объекта (extend) + +Help on built-in function extend: + +extend(iterable, /) method of builtins.list instance + Extend list by appending elements from the iterable. + +end1 = [123, "mew", (1,2)] + +spis1.extend(end1) + +spis1 +[(5-9j), 'hello', 'New item', 'Меня зовут: \n Тимошенко А.А.', 'test', 123, 'mew', (1, 2)] + +6. Полное очищение списка (clear) +help(spis1.clear) + +Help on built-in function clear: + +clear() method of builtins.list instance + Remove all items from list. + +end1.clear() + +end1 +[] + +7. Сортировка списка БЕЗ создания нового объекта (sort) + +help(spis1.sort) + +Help on built-in function sort: + +sort(*, key=None, reverse=False) method of builtins.list instance + Sort the list in ascending order and return None. + + The sort is in-place (i.e. the list itself is modified) and stable (i.e. the + order of two equal elements is maintained). + + If a key function is given, apply it once to each list item and sort them, + ascending or descending, according to their function values. + + The reverse flag can be set to sort in descending order. + +end1 = [5, 6, 9.99999, 384, 0, -5] + +end1.sort(key = abs, reverse = True) + +end1 +[384, 9.99999, 6, 5, -5, 0] + +При этом некоторые key's не применимы для некоторых типов (у string нет abs, +у complex нет длины и т.д.) + +8. Создание копии списка (copy) + +help(end1.copy) + +Help on built-in function copy: + +copy() method of builtins.list instance + Return a shallow copy of the list. + +endcopy = end1.copy() + +endcopy +[384, 9.99999, 6, 5, -5, 0] + +9. Поиск индекса по значению (index) + +help(endcopy.index) + +Help on built-in function index: + +index(value, start=0, stop=9223372036854775807, /) method of builtins.list instance + Return first index of value. + + Raises ValueError if the value is not present. + +endcopy.index(0) +5 + +endopy.index("hehehe") +Traceback (most recent call last): + File "", line 1, in + endopy.index("hehehe") +ValueError: 'hehehe' is not in list + +10. Подсчет количества элементов по значению (count) + +help(endcopy.count) + +Help on built-in function count: + +count(value, /) method of builtins.list instance + Return number of occurrences of value. + +endcopy.count(5) +1 + +endcopy.count(666666) +0 + +8.1 Вложенные списки: +spis2=[spis1,[4,5,6,7]] + +spis2 +[[(5-9j), 'hello', 'New item', 'Меня зовут: \n Тимошенко А.А.', 'test', 123, 'mew', (1, 2)], [4, 5, 6, 7]] +spis2[0][1] + +'hello' +spis2[0][1]=78 + +spis2 +[[(5-9j), 78, 'New item', 'Меня зовут: \n Тимошенко А.А.', 'test', 123, 'mew', (1, 2)], [4, 5, 6, 7]] +spis1 +[(5-9j), 78, 'New item', 'Меня зовут: \n Тимошенко А.А.', 'test', 123, 'mew', (1, 2)] + +Как видно, spis1 тоже изменился. Это происходит потому, что python работает не просто с +объектами, а с ссылками на участки памяти. То есть, в Python списки передаются по ссылке, +а не по значению. +Упоминая spis1 в строке spis2=[spis1,[4,5,6,7]] +мы не создаем копию spis1, а сообщаем именно тот список, поэтому его изменения в составе +spis2 отобраажются на исходном spis1. + +kort1=(222,'Kortezh',77+8j) +kort1= kort1+(1,2) + +8.2. Кортеж: последовательность как список, но неизменяемая как строка. + +kort1 +(222, 'Kortezh', (77+8j), 1, 2) +kort1= kort1+(ss1b,) +kort1 +(222, 'Kortezh', (77+8j), 1, 2, 'Меня зовут: \n Тимошенко А.А.') +kort2=kort1[:2]+kort1[3:] + +kort2 +(222, 'Kortezh', 1, 2, 'Меня зовут: \n Тимошенко А.А.') +kort1.index(2) +4 +kort1.count(222) +1 +kort1[2]=90 +Traceback (most recent call last): + File "", line 1, in + kort1[2]=90 +TypeError: 'tuple' object does not support item assignment +>>> kortstr = ("h", "lambda", "always", 54, [1,2,3], (6,7)) + +SyntaxError: invalid syntax +kortstr = ("h", "lambda", "always", 54, [1,2,3], (6,7)) + +kortstr + +('h', 'lambda', 'always', 54, [1, 2, 3], (6, 7)) +type(kortstr[5]) + + +type(kortstr[4]) + + + +8.3. Словарь (dictionary) - содержит в себе совокупность пар +"ключ (key) (неизменяемый)": "значение (value) (любого типа)" + +dic1={'Saratov':145, 'Orel':56, 'Vologda':45} + +dic1 +{'Saratov': 145, 'Orel': 56, 'Vologda': 45} +dic1[1] +Traceback (most recent call last): + File "", line 1, in #как видно, обратиться по индексу нельзя + dic1[1] +KeyError: 1 +dic1['Orel'] + +56 +dic1['Pskov']=78 + +dic1 +{'Saratov': 145, 'Orel': 56, 'Vologda': 45, 'Pskov': 78} +sorted(dic1.keys()) + +['Orel', 'Pskov', 'Saratov', 'Vologda'] +sorted(dic1.values()) +[45, 56, 78, 145] +dic2={1:'mean',2:'standart deviation',3:'correlation'} + +dic3={'statistics':dic2,'POAS':['base','elementary','programming']} + +dic3['statistics'][2] +'standart deviation' +dic4=dict([(1,['A','B','C']),(2,[4,5]),('Q','Prim'),('Stroka',ss1b)]) +dic4 +{1: ['A', 'B', 'C'], 2: [4, 5], 'Q': 'Prim', 'Stroka': 'Меня зовут: \n Тимошенко А.А.'} +dic5=dict(zip(['A','B','C','Stroka'],[16,-3,9,ss1b])) +dic5 +{'A': 16, 'B': -3, 'C': 9, 'Stroka': 'Меня зовут: \n Тимошенко А.А.'} + +Создание собственного словаря на основе кортежа из семи элементов и списка из пяти: + +terms_tuple = ("mean", "median", "mode", "variance", "standard deviation", "correlation", "regression") + +count_list = ["one", "two", "three", "four", "five"] +KeyboardInterrupt +count_list = ["one", "two", "three", "four", "five"] + +terms_dict = dict(zip(count_list, terms_tuple)) + +terms_dict +{'one': 'mean', 'two': 'median', 'three': 'mode', 'four': 'variance', 'five': 'standard deviation'} +mnoz1={'двигатель','датчик','линия связи','датчик','микропроцессор','двигатель'} +Как видно, в итоговом словаре пять объектов. Это связано с работой функции zip: +длина итогового объекта будет соответствовать минимальной длине составляющего +объекта. + +8.4. Словари: состоят из НЕповторяющихся неизменяемых элементов +mnoz1 +{'датчик', 'линия связи', 'микропроцессор', 'двигатель'} +len(mnoz1) +4 +'датчик' in mnoz1 + +True +mnoz1.add('реле') +mnoz1.remove('линия связи') + +mnoz1 +{'датчик', 'реле', 'двигатель', 'микропроцессор'} + + diff --git a/TEMA2/task2.md b/TEMA2/task2.md new file mode 100644 index 0000000..85dc0f0 --- /dev/null +++ b/TEMA2/task2.md @@ -0,0 +1,52 @@ +Выполнил: студент группы А-01-23 Тимошенко Александр +ОБЩЕЕ КОНТРОЛЬНОЕ ЗАДАНИЕ: + + 1. • Создать переменную с именем familia и со значением - + символьной строкой – своей фамилией в латинской транскрипции. +familia = 'Timoshenko' + +2. • Создать переменную со значением, совпадающим с первой + буквой из familia. +fam1 = familia[0] +fam1 +'T' + + 3. • Создать переменную с именем sp_kw со значением – + списком всей ключевых слов языка Python. +import keyword +sp_kw = keyword.kwlist +sp_kw +['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'] + +4. • Удалите из списка sp_kw значение 'nonlocal'. Выводом списка в + командном окне IDLE убедитесь, что это значение удалено из списка. +sp_kw.remove('nonlocal') +sp_kw +['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'] + +5. • Создайте кортеж kort_nam с именами: вашим и еще 3-х студентов + из вашей группы. Напишите инструкцию, позволяющую убедиться, что тип + переменной – это tuple. +kort_nam = ("Sasha", "Maksim", "Dmitriy", "Danya") +type(kort_nam) + + +6. • Напишите инструкцию, добавляющую в kort_nam имена + еще двух студентов. +kort_nam += ("Liza","Nikita") +kort_nam +('Sasha', 'Maksim', 'Dmitriy', 'Danya', 'Liza', 'Nikita') + +7. • Напишите инструкцию, позволяющую определить, сколько раз в + кортеже присутствуют студенты с именем «Дима». +kort_nam.count("Dmitriy") +1 + +8. • Создайте словарь dict_bas, в котором ключами являются русские + названия типов переменных, использованных в предыдущих операторах, + а значениями – ранее созданные переменные, соответствующие этим типам. +dict_bas = {"строка": familia, "символ": fam1, "список": sp_kw, + "кортеж": kort_nam,} +dict_bas +{'строка': 'Timoshenko', 'символ': 'T', 'список': ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'], 'кортеж': ('Sasha', 'Maksim', 'Dmitriy', 'Danya', 'Liza', 'Nikita')} +