From da2604a0eec3396a99fe8efce44dbed0df102c68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B5=D0=BD=D0=B8=D1=81=20=D0=92=D0=BE=D0=BB=D0=BE?= =?UTF-8?q?=D0=B4=D0=B8=D0=BD?= Date: Sun, 21 Sep 2025 12:41:28 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=82=D1=87=D0=B5=D1=82=D0=B0=20?= =?UTF-8?q?=D0=B8=20=D0=9E=D0=9A=D0=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TEMA2/report.md | 783 ++++++++++++++++++++++++++++++++++++++++++++++++ TEMA2/task.md | 62 ++++ 2 files changed, 845 insertions(+) create mode 100644 TEMA2/task.md diff --git a/TEMA2/report.md b/TEMA2/report.md index e69de29..301df48 100644 --- a/TEMA2/report.md +++ b/TEMA2/report.md @@ -0,0 +1,783 @@ +## Отчет по теме 2 + Володин Денис, А-02-23 + + +## Пункт 1 + +Рабочая среда настроена на нахождение в нужной директории: + +```py +>>> import os +>>> os.chdir(r'C:\Users\denvo\OneDrive\Рабочий стол\python-labs\TEMA2') +``` + +## Пункт 2 + +Создадим два простых объекта - переменные f1 и f2. Это можно сделать в одну строку: + +```py +>>> f1 = 16; f2 = 3 +``` + +Можно вывести эти переменные через запятую. Тогда они будут отображены как кортеж: + +```py +>>> f1, f2 +(16, 3) +``` + +Или через точку с запятой. тогда друг за другом: + +```py +>>> f1; f2 +16 +3 +``` + +Функция dir() покажет, какие объекты находятся в текущем рабочем пространстве: + +```py +>>> dir() +['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'f1', 'f2', 'os'] +``` + +Еще эта функция может показать атрибуты объекта: + +```py +>>> dir (f1) +['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', + '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__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__', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', + 'numerator', 'real', 'to_bytes'] +``` + +Для определения классовой принадлежности любого объекта следует использовать функцию type(): + +```py +>>> type(f2) + +``` + +Удалим объекты из рабочего пространства: + +```py +>>> del f1, f2 +>>> dir() +['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'os'] +``` + +## Пункт 3 + +Правила именования объектов: + +```py +>>> gg1 = 1.6 +>>> hh1 = 'example' +>>> 73sr = 3 +SyntaxError: invalid syntax --- ошибка, т.к. имя не может начинаться с числа +>>> and = 7 +SyntaxError: invalid syntax --- ошибка, т.к. имя не может совпадать с ключевым словом языка +``` + +## Пункт 4 + +Можно просмотреть все ключевые слова: + +```py +>>> import keyword +>>> keyword.kwlist +['False', 'None', 'True', 'and', 'as', 'assert', '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', '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'] +``` + +## Пункт 5 + +```py +>>> import builtins +>>> dir(builtins) +['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', + 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', + 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', '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', + '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', '_', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', + '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', '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'] +``` + +Среди этих имен есть полезные функции, например: + +Взятие модуля + +```py +>>> abs(-10) +10 +``` + +Длина объекта + +```py +>>> len([1, 2, 3]) +3 +``` + +Максимум значений: + +```py +>>> max(15, 14) +15 +``` + +Минимум значений: + +```py +>>> min (15,10) +10 +``` + +Возведение в степень: + +```py +>>> pow (5, 2) +25 +``` + +Округление: + +```py +>>> round (3,124) +3 +``` + +Суммирование: + +```py +>>> sum ([7, 3, 5]) +15 +``` + +Сортировка по возрастанию или по убыванию: + +```py +>>> 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] +``` + +Объединение объектов в кортеж: + +```py +>>> list1 = [1, 2, 3] +>>> list2 = [4, 5, 6] +>>> zip (list1, list2) + + +>>> list(zipped) +[(1, 4), (2, 5), (3, 6)] +``` + +## Пункт 6 + +Питон - язык, чувствительный к регистрам + +```py +>>> Gg1 = 45 +>>> gg1, Gg1 +(1.6, 45) +>>> gg1 == Gg1 +False +``` + +## Пункт 7 + +Изучим базовые типы объектов + +Логический тип: + +```py +>>> bb1 = True +>>> bb2 = False +>>> type(bb1) + +``` + +Целое число: + +```py +>>> ii1 = 1234567890 +>>> type(ii1) + +``` + +Экспоненциальная форма записи числа: + +```py +>>> ff1 = 8.987e-12 +>>> type(ff1) + +``` + +Двоичное число: + +```py +>>> dv1 = 0b1100101 +>>> type(bb1) + +``` + +Восьмеричное число: + +```py +>>> vsm1 = 0o52765 +>>> type(vsm1) + +``` + +Шестнадцатеричное число: + +```py +>>> shest1 = 0x7109af6 +>>> type(shest1) + +``` + +Комплексное число: + +```py +>>> cc1 = 2 - 3j +>>> type(cc1) + + +>>> a = 3.67 +>>> b = 0.45 +>>> cc2 = complex (a, b) +>>> cc2 +(3.67+0.45j) +>>> type (cc2) + +``` + +Строки: + +```py +>>> ss1 = "Это - строка символов" +>>> ss2 = 'Это - строка символов' +>>> ss1 == ss2 +True + +>>> ss1a="Это - \" строка символов \", \n \t выводимая на двух строках" +>>> print(ss1a) +Это - " строка символов ", + выводимая на двух строках + +>>> ss1b = 'Меня зовут: \n Володин Д.В.' +>>> print(ss1b) +Меня зовут: + Володин Д.В. +``` + +Большую строку можно записать в тройных кавычках: + +```py +>>> mnogo="""Нетрудно заметить , что в результате операции +над числами разных типов получается число, +имеющее более сложный тип из тех, которые участвуют в операции.""" +>>> print(mnogo) +Нетрудно заметить , что в результате операции +над числами разных типов получается число, +имеющее более сложный тип из тех, которые участвуют в операции. +``` + +Обратимся к отдельным элементам с помощью квадратных кавычек: + +```py +>>> mnogo[3] +'р' +>>> ss1b[-1] +'.' +``` + +Срезы: + +```py +>>> ss1[6:9] +'стр' +>>> ss1[3:17:2] +' тоасм' +>>> ss1[5:-8] +' строка ' +>>> ss1[::-1] +'воловмис акортс - отЭ' +>>> ss1[17:3:-2] +'омсаот ' +>>> ss1[-4:3:-2] +'омсаот ' +``` + +Строка - неизменяемый тип данных: + +```py +>>> ss1[4] = "=" +Traceback (most recent call last): + File "", line 1, in + ss1[4] = "=" +TypeError: 'str' object does not support item assignment +``` + +Но если возникает необходимость изменить строку, то можно пересобрать ее из исходной строки: + +```py +>>> ss1=ss1[:4]+'='+ss1[5:] +>>> ss1 +'Это = строка символов' +``` + +Собственное создание разных типов данных: + +```py +>>> num10 = 26 +>>> type(num10) + + +>>> num16 = hex(num10) +>>> num16 +'0x1a' +>>> type(num16) + + +>>> str1 = str(num10) + ' в десятичной - это ' + str(num16) + ' в шестнадцатеричной ' +>>> str1 +'26 в десятичной - это 0x1a в шестнадцатеричной ' +>>> str1[5:16:3] +'дячй' +>>> +``` + +## Пункт 8 + +Список list - изменяемый тип данных. Это упорядоченная последовательность из элементов одного или разных типов. + +```py +>>> 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] +>>> spis1 [-1] +(5-9j) +>>> stup [-8 :: 2] +[0, 1, 1, 1] +>>> spis1[1]='Список' +>>> spis1 +[111, 'Список', (5-9j)] +>>> len(spis1) +3 +``` + +Методы списков: + +1. Добавление в конец: + +```py +>>> 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'] +``` + +2. Сложение строк: + +```py +>>> 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 Володин Д.В.'] +``` +3. Удаление элемента по индексу: + +```py +>>> 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 +``` + +4. Вставка элемента в определенное место по индексу: + +```py +>>> 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 +[(5-9j), 'hello', 'New item', 'Меня зовут: \n Володин Д.В.', 'test'] +``` + +5. Удаление элемента по значению: + +```py +>>> 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 Володин Д.В.'] +>>> spis1.remove('kitten') +Traceback (most recent call last): + File "", line 1, in + spis1.remove('kitten') +``` +6. Добавление элементов объекта в конец другого объекта: + +```py +>>> help(spis1.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)] +``` + +7. Полное очищение списка: + +```py +>>> help(spis1.clear) +Help on built-in function clear: + +clear() method of builtins.list instance + Remove all items from list. + +>>> end1.clear() +>>> end1 +[] +``` + +8. Сортировка списка БЕЗ создания нового объекта: + +```py +>>> 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 нет длины и т.д.) + +9. Создание копии списка: + +```py +>>> 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] +``` + +10. Поиск индекса по значению: + +```py +>>> 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("lalala") +Traceback (most recent call last): + File "", line 1, in + endcopy.index("lalala") +ValueError: 'lalala' is not in list +``` + +11. Подсчет количества элементов по значению: + +```py +>>> 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 +>>> 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. + +Кортеж - последовательность как список, но неизменяемая как строка. + +```py +>>> kort1=(222,'Kortezh',77+8j) +>>> kort1= kort1+(1,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)) +>>> kortstr +('h', 'lambda', 'always', 54, [1, 2, 3], (6, 7)) +>>> type(kortstr[5]) + +>>> type(kortstr[4]) + +>>> +``` + +Словарь (dictionary) - содержит в себе совокупность пар +"ключ (key) (неизменяемый)": "значение (value) (любого типа)" + +```py +>>> 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 Володин Д.В.'} +``` + +Создание собственного словаря на основе кортежа из семи элементов и списка из пяти: + +```py +>>> terms_tuple = ("mean", "median", "mode", "variance", "standard deviation", "correlation", "regression") +>>> 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'} +``` + +Как видно, в итоговом словаре пять объектов. Это связано с работой функции zip: +длина итогового объекта будет соответствовать минимальной длине составляющего +объекта. + +Словари: состоят из Неповторяющихся неизменяемых элементов + +```py +>>> mnoz1={'двигатель','датчик','линия связи','датчик','микропроцессор','двигатель'} +>>> mnoz1 +{'двигатель', 'линия связи', 'датчик', 'микропроцессор'} +>>> len(mnoz1) +4 +>>> 'датчик' in mnoz1 +True +>>> mnoz1.add('реле') +>>> mnoz1.remove('линия связи') +>>> mnoz1 +{'реле', 'микропроцессор', 'датчик', 'двигатель'} +``` + +ОБЩЕЕ КОНТРОЛЬНОЕ ЗАДАНИЕ: + + 1. • Создать переменную с именем familia и со значением - + символьной строкой – своей фамилией в латинской транскрипции. +>>> familia = 'Volodin' + + 2. • Создать переменную со значением, совпадающим с первой + буквой из familia. +>>> fam1 = familia[0] +>>> fam1 +'V' + 3. • Создать переменную с именем sp_kw со значением – + списком всей ключевых слов языка Python. +>>> import keyword +>>> sp_kw = keyword.kwlist +>>> sp_kw +['False', 'None', 'True', '__peg_parser__', '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', '__peg_parser__', '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 = ("Denis", "Liza", "Yra", "Lena") +>>> type(kort_nam) + + + 6. • Напишите инструкцию, добавляющую в kort_nam имена + еще двух студентов. +>>> kort_nam += ("Alena", "Nasty") +>>> kort_nam +('Denis', 'Liza', 'Yra', 'Lena', 'Alena', 'Nasty') + + 7. • Напишите инструкцию, позволяющую определить, сколько раз в + кортеже присутствуют студенты с именем «Дима». +>>> kort_nam.count("Dima") +0 + + 8. • Создайте словарь dict_bas, в котором ключами являются русские + названия типов переменных, использованных в предыдущих операторах, + а значениями – ранее созданные переменные, соответствующие этим типам. +>>> dict_bas = {"строка": familia, "символ": fam1, "список": sp_kw, + "кортеж": kort_nam,} +>>> dict_bas +{'строка': 'Volodin', 'символ': 'V', 'список': ['False', 'None', 'True', +'__peg_parser__', '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'], 'кортеж': ('Denis', 'Liza', 'Yra', 'Lena', 'Alena', 'Nasty')} + + +ИНДИВИДУАЛЬНОЕ КОНТРОЛЬНОЕ ЗАДАНИЕ: + + 14. Создайте объект + fg={'b':23,'c':45,'a':-12} +К какому классу относится этот объект? Напишите инструкцию, создающую словарь, +у которого упорядоченным по алфавиту ключам объекта fg соответствуют +упорядоченные по величине значения этого объекта. + +1. Создание объекта: + +>>> fg = {'b':23,'c':45,'a':-12} +>>> fg +{'b': 23, 'c': 45, 'a': -12} + +2. Класс: + +>>> type(fg) + + +3. Создать словарь, у которого упорядоченным по алфавиту ключам fg соответствуют +упорядоченные по величине значения fg. + +>>> fg1 = dict(zip(sorted(fg.keys()), sorted(fg.values()))) +>>> fg1 +{'a': -12, 'b': 23, 'c': 45} diff --git a/TEMA2/task.md b/TEMA2/task.md new file mode 100644 index 0000000..930b746 --- /dev/null +++ b/TEMA2/task.md @@ -0,0 +1,62 @@ +# Общее контрольное задание по теме 2 + +Володин Денис, А-02-23 + +## Задание + +Реализовать, записать в текстовый файл и проанализировать результаты последовательности инструкций, выполняющих следующие действия: + • Создать переменную с именем familia и со значением - символьной строкой – своей фамилией в латинской транскрипции. + • Создать переменную со значением, совпадающим с первой буквой из familia. + • Создать переменную с именем sp_kw со значением – списком всей ключевых слов языка Python. + • Удалите из списка sp_kw значение 'nonlocal'. Выводом списка в командном окне IDLE убедитесь, что это значение удалено из списка. + • Создайте кортеж kort_nam с именами: вашим и еще 3-х студентов из вашей группы. Напишите инструкцию, позволяющую убедиться, что тип переменной – это tuple. + • Напишите инструкцию, добавляющую в kort_nam имена еще двух студентов. + • Напишите инструкцию, позволяющую определить, сколько раз в кортеже присутствуют студенты с именем «Дима». + • Создайте словарь dict_bas, в котором ключами являются русские названия типов переменных, использованных в предыдущих операторах, а значениями – ранее созданные переменные, соответствующие этим типам. + +## Решение + +```py +>>> familia = 'Volodin' + +>>> fam1 = familia[0] +>>> fam1 +'V' + +>>> import keyword +>>> sp_kw = keyword.kwlist +>>> sp_kw +['False', 'None', 'True', '__peg_parser__', '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'] + +>>> sp_kw.remove('nonlocal') +>>> sp_kw +['False', 'None', 'True', '__peg_parser__', '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'] + +>>> kort_nam = ("Denis", "Liza", "Yra", "Lena") +>>> type(kort_nam) + + +>>> kort_nam += ("Alena", "Nasty") +>>> kort_nam +('Denis', 'Liza', 'Yra', 'Lena', 'Alena', 'Nasty') + +>>> kort_nam.count("Dima") +0 + +>>> dict_bas = {"строка": familia, "символ": fam1, "список": sp_kw, + "кортеж": kort_nam,} +>>> dict_bas +{'строка': 'Volodin', 'символ': 'V', 'список': ['False', 'None', 'True', +'__peg_parser__', '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'], 'кортеж': ('Denis', 'Liza', 'Yra', 'Lena', 'Alena', 'Nasty')} +``` \ No newline at end of file