# Отчет по теме 2 Терехов Фёдор Валерьевич, А-01-23 ## 1. Изучение простых объектов. 1. _"Для того, чтобы узнать, какое значение имеет переменная, достаточно перечислить их имена в строке, разделяя их знаком «,» (запятая) или «;» (точка с запятой)."_ ``` python f1=16; f2=3 print("Значения переменных через запятую:") print(f1, f2) print("\nЗначения переменных через точку с запятой:") print(f1); print(f2) ``` Ответ программы: ![Task 1.1](images/Task1_1.png) 2. _"Для того, чтобы узнать, какие объекты уже существуют в данный момент в среде Python (в пространстве имен), используйте функцию dir без аргументов."_ ``` python print("\nСуществующие объекты в пространстве имен:") print(dir()) ``` Ответ программы: ![Task 1.2](images/Task1_2.png) 3. _"Для получения списка атрибутов любого объекта используйте ту же функцию dir(), с аргументами – именами интересующих объектов"_ ``` python print("\nАтрибуты объекта f1:") print(dir(f1)) print("\nАтрибуты объекта f2:") print(dir(f2)) ``` Ответ программы: ![Task 1.3](images/Task1_3.png) 4. _"Для определения классовой принадлежности любого объекта следует использовать функцию type()."_ ``` python print(f"\nТип f1: {type(f1)}") #f перед текстом обозначает строку, переменные пишутся в {} print(f"Тип f2: {type(f2)}") ``` Ответ программы: ![Task 1.4](images/Task1_4.png) 5. _"Для удаления объекта или его части из оперативной памяти используйте инструкцию del."_ ``` python print("\nУдаляем объекты f1 и f2...") del f1, f2 print("\nСуществующие объекты в пространстве имен ПОСЛЕ удаления:") print(dir()) print("\nПопытка обратиться к удаленным объектам:") print(f1) ``` Ответ программы: ![Task 1.5](images/Task1_5.png) ## 2. Изучение правил именования объектов в Python. *Правила именования:* * *имена должны состоять из латинских букв, цифр и символов подчеркивания;* * *имена должны начинаться с латинской буквы (иногда могут начинаться с символа подчеркивания, но это – особый вид переменных);* * *имена не должны совпадать с ключевыми словами и встроенными идентификаторами языка Python;* * *большие и малые буквы в именах различаются (имена – чувствительные к регистру)!"* ``` python gg1=1.6 #значение в виде вещественного числа hh1='Строка' #значение в виде символьной строки 73sr=3 #неправильное имя – начинается с цифры - будет диагностика! and=7 #недопустимое имя – совпадает с ключевым словом - будет диагностика! ``` Ответ программы: ![Task 2.1](images/Task2_1.png) ![Task 2.2](images/Task2_2.png) ## 3. Вывод списка ключевых слов с помощью инструкции import keyword && keyword.kwlist ``` python import keyword print("Список ключевых слов Python:") print(keyword.kwlist) ``` Ответ программы: ![Task 3.1](images/Task3_1.png) *Сохранение списка в переменной:* ``` python keywords_list = keyword.kwlist print("\nСохранение в виде списка:") print(keywords_list) ``` Ответ программы: ![Task 3.2](images/Task3_2.png) ## 4. Вывод списка встроенных идентификаторов с помощью инструкций import builtins && dir(builtins) ``` python import builtins print("Список встроенных идентификаторов Python:") builtins_list = dir(builtins) print(builtins_list) ``` Ответ программы: ![Task 4.1](images/Task4_1.png) ``` python print("Справка по функциям:") print("\n1. Функция abs():") help(abs) ``` Ответ программы: ![Task 4.2.1](images/Task4_2_1.png) ``` python print("\n2. Функция len():") help(len) ``` Ответ прошграммы: ![Task 4.2.2](images/Task4_2_2.png) ``` python print("\n3. Функция max():") help(max) ``` Ответ программы: ![Task 4.2.3](images/Task4_2_3.png) ``` python print("\n4. Функция min():") help(min) ``` Ответ программы: ![Task 4.2.4](images/Task4_2_4.png) ``` python print("\n5. Функция pow():") help(pow) ``` Ответ программы: ![Task 4.2.5](images/Task4_2_5.png) ``` python print("\n6. Функция round():") help(round) ``` Ответ программы: ![Task 4.2.6](images/Task4_2_6.png) ``` python print("\n7. Функция sorted():") help(sorted) ``` Ответ программы: ![Task 4.2.7](images/Task4_2_7.png) ``` python print("\n8. Функция sum():") help(sum) ``` Ответ программы: ![Task 4.2.8](images/Task4_2_8.png) ``` python print("\n9. Функция zip():") help(zip) ``` Ответ программы: ![Task 4.2.9](images/Task4_2_9.png) ## 5. Малые и большие буквы в именах объектов различаются. ``` python Gg1=45 print(Gg1) print(gg1) ``` Ответ программы: ![Task 5](images/Task5.png) ## 6. Изучение простых базовых типов объектов: логический (bool), целый (int), вещественный (float), комплексный (complex), строка символов (str). ### 6.1. Числовые типы. 1. Логический тип. ``` python bb1=True bb2=False print(f"bb1 = {bb1}") print(f"bb2 = {bb2}") print(f"Класс объекта: {type(bb1)}") ``` Ответ программы: ![Task 6.1.1](images/Task6_1_1.png) 2. Целочисленный тип. ``` python ii1=-1234567890 print(f"\nii1 = {ii1}") print(f"Класс объекта: {type(ii1)}") ``` Ответ программы: ![Task 6.1.2](images/Task6_1_2.png) 3. Экспоненциальная форма записи вещественного числа. ``` python ff1=-8.9876e-12 print(f"\nff1 = {ff1}") print(f"Класс объекта: {type(ff1)}") ``` Ответ программы: ![Task 6.1.3](images/Task6_1_3.png) 4. Двоичное число. ``` python dv1=0b1101010 print(f"\ndv1 = {dv1}") print(f"Класс объекта: {type(dv1)}") ``` Ответ программы: ![Task 6.1.4](images/Task6_1_4.png) 5. Восьмеричное число. ``` python vsm1=0o52765 print(f"\nvsm1 = {vsm1}") print(f"Класс объекта: {type(vsm1)}") ``` Ответ программы: ![Task 6.1.5](images/Task6_1_5.png) 6. Шестнадцатеричное число. ``` python shest1=0x7109af6 print(f"\nshest1 = {shest1}") print(f"Класс объекта: {type(shest1)}") ``` Ответ программы: ![Task 6.1.6](images/Task6_1_6.png) 7. Комплексное число. ``` python cc1=2-3j print(f"\ncc1 = {cc1}") print(f"Класс объекта: {type(cc1)}") ``` Ответ программы: ![Task 6.1.7](images/Task6_1_7.png) 8. Вещественное число. ``` python a=3.67 b=-0.45 print(f"\na = {a}") print(f"b = {b}") print(f"Класс объекта a: {type(a)}") print(f"Класс объекта b: {type(b)}") ``` Ответ программы: ![Task 6.1.8](images/Task6_1_8.png) 9. Альтернативный способ задания комплексного числа. ``` python cc2=complex(a,b) print(f"\ncc2 = {cc2}") print(f"Класс объекта cc2: {type(cc2)}") ``` Ответ программы: ![Task 6.1.9](images/Task6_1_9.png) ### 6.2. Строки. 1. *Строки можно заключать в апострофы или в двойные кавычки. Внутри строки символов можно использовать, так называемые, «экранированные последовательности, начинающиеся со знака «\»(обратный слеш), например, \\, \', \", \t, \n и другие.* ``` python ss1='Это - строка символов' print(f"{ss1}\n") ss1a="Это - \" строка символов \", \n \t выводимая на двух строках" print(ss1a) ``` Ответ программы: ![Task 6.2.1](images/Task6_2_1.png) 2. *Создайте строку по шаблону. Выведите получившуюся строку на экран.* ``` python ss1b= 'Меня зовут: \n TerekhovFV' print(ss1b) ``` Ответ программы: ![Task 6.2.2](images/Task6_2_2.png) 3. *Многострочные строки можно задавать в виде значения объекта с использованием тройных кавычек. При вводе такой строки символ приглашения в начале строки не появится, пока не будет вновь введены тройные кавычки.* ``` python mnogo="""Нетрудно заметить , что в результате операции над числами разных типов получается число, имеющее более сложный тип из тех, которые участвуют в операции.""" print(mnogo) ``` Ответ программы: ![Task 6.2.3](images/Task6_2_3.png) 4. *Можно обращаться к частям строки символов с использованием индексов символов по их порядку в строке. При этом надо учитывать, что нумерация символов начинается с 0. При знаке «-»(минус) отсчёт от конца строки.* ``` python print(ss1[0]) print(ss1[8]) print(ss1[-2]) ``` Ответ программы: ![Task 6.2.4](images/Task6_2_4.png) 5. *Операция «разрезания» или «создания среза», создающая новый объект. В срезе указываются не позиции элементов, а их индексы и что указываемая правая граница в срез не включается.* ``` python print(ss1[6:9]) #Это часть строки – символы с 6-го индекса по 8-й (9-й не включается!) print(ss1[13:]) #Это часть строки – с 13-го индекса и до конца print(ss1[:13]) #Это часть строки – с начала и до 12-го индекса включительно print(ss1[5:-8]) #Это часть строки – с 5-го индекса и до 8-го от конца print(ss1[3:17:2]) #Часть строки – с 3-го по 16-й индексы с шагом 2 ``` Ответ программы: ![Task 6.2.5](images/Task6_2_5.png) *При отрицательном значении шага* ``` python print(ss1[17:3:-2]) ``` Ответ программы: ![Task 6.2.5.1](images/Task6_2_5_1.png) *Если "17" заменить на "-4", то получим такой же результат.* ``` python print(ss1[-4:3:-2]) ``` Ответ программы: ![Task 6.2.5.2](images/Task6_2_5_1.png) 6. *Строка является неизменяемым объектом. Однако, можно это сделать по-другому, переопределив строку.* ``` python ss1[4]='=' ``` Ответ программы: ![Task 6.2.6.1](images/Task6_2_6_1.png) ``` python ss1=ss1[:4]+'='+ss1[5:] print(ss1) ``` Ответ программы: ![Task 6.2.6.2](images/Task6_2_6_2.png) 7. *С использованием ранее созданной строки ss1b попробуйте создать объекты с разными срезами исходной строки.* ``` python print(ss1b[-10:]) print("\n") ss1b="My name is "+ ss1b[-10:] print(ss1b) ``` Ответ программы: ![Task 6.2.7](images/Task6_2_7.png) 8. *Самостоятельно придумайте значения и создайте объекты разных типов. После этого отобразите типы и значения созданных объектов.* ``` python целое_число = 42 вещественное_число = 3.14159 комплексное_число = 2 + 3j строка = "Привет, мир!" многострочная_строка = """Это многострочная строка""" логическое_значение = True print(целое_число) print(вещественное_число) print(комплексное_число) print(строка) print(многострочная_строка) ``` Ответ программы: ![Task 6.2.8](images/Task6_2_8.png) ## 7. Изучение более сложных типов объектов: списки (list), кортежи (tuple), словари (dict), множества (set). ### 7.1. Список. 1. *Список – это последовательность: упорядоченная по местоположению коллекция объектов произвольных типов, размер которых практически не ограничен. В отличие от символьных строк, списки являются изменяемыми последовательностями, т.е. их элементы могут изменяться с помощью операций присваивания.* ``` python spis1=[111,'Spisok',5-9j] print(spis1) ``` Ответ программы: ![Task 7.1.1.](images/Task7_1_1.png) 2. *Cписок, содержащий последовательность отсчетов сигнала в виде «единичной ступеньки».* ``` python stup=[0,0,1,1,1,1,1,1,1] print(stup) ``` Ответ программы: ![Task 7.1.2.](images/Task7_1_2.png) 3. *Список можно вводить на нескольких строках. При этом список будет считаться незавершенным, пока не будет введена закрывающая квадратная скобка.* ``` python spis=[1,2,3,4, 5,6,7, 8,9,10] print(spis) ``` Ответ программы: ![Task 7.1.3.](images/Task7_1_3.png) 4. *При работе с элементами списка можно использовать индексы точно так же, как это делали с элементами символьной строки.* ``` python print(stup[-8::2]) ``` Ответ программы: ![Task 7.1.4.](images/Task7_1_4.png) ``` python spis1[1]='Список' print(spis1) ``` Ответ программы: ![Task 7.1.5.](images/Task7_1_5.png) 5. *Текущее число элементов в списке можно узнать с помощью функции len().* ``` python print(len(spis1)) ``` Ответ программы: ![Task 7.1.6.](images/Task7_1_6.png) 6. *Описание метода можно вывести с помощью функции help().* ``` python help(spis1.append) ``` Ответ программы: ![Task 7.1.7.](images/Task7_1_7.png) 7. *С помощью методов объектов-списков можно добавлять и удалять элементы.* ``` python pis1.append('New item1') spis1=spis1+["New item2"] spis1=spis1+[ss1b] print(spis1) ``` Ответ программы: ![Task 7.1.8.](images/Task7_1_8.png) 8. *Также могут использоваться методы insert, remove, extend, clear, sort, reverse, copy, count, index.* Создадим список для экспериментов: ``` python fruits = ["яблоко", "банан", "апельсин", "киви", "банан", "манго"] print("Исходный список:", fruits) print() #1. append() - добавление элемента в конец fruits.append("виноград") print("1. После append('виноград'):", fruits) #2. insert() - вставка элемента по индексу fruits.insert(2, "лимон") print("2. После insert(2, 'лимон'):", fruits) #3. extend() - расширение списка другим списком more_fruits = ["груша", "персик"] fruits.extend(more_fruits) print("3. После extend(['груша', 'персик']):", fruits) #4. remove() - удаление первого найденного элемента по значению fruits.remove("банан") print("4. После remove('банан'):", fruits) #5. pop() - удаление элемента по индексу (и возврат значения) removed_fruit = fruits.pop(1) print("5. После pop(3):", fruits) print(" Удаленный элемент:", removed_fruit) #6. clear() - полная очистка списка (создадим копию для демонстрации) fruits_copy = fruits.copy() fruits_copy.clear() print("6. После clear() копии:", fruits_copy) #7. index() - поиск индекса элемента index_kiwi = fruits.index("киви") print("7. Индекс элемента 'киви':", index_kiwi) #8. count() - подсчет количества элементов count_banana = fruits.count("банан") print("8. Количество 'банан' в списке:", count_banana) #9. sort() - сортировка списка fruits.sort() print("9. После sort() (по алфавиту):", fruits) #10. reverse() - обратный порядок элементов fruits.reverse() print("10. После reverse():", fruits) #11. copy() - создание копии списка fruits_copy2 = fruits.copy() fruits_copy2.append("ананас") print("11. Оригинал после copy():", fruits) print(" Копия после append('ананас'):", fruits_copy2) #12. Дополнительно: len() - длина списка print("12. Длина списка:", len(fruits)) #13. Дополнительно: проверка наличия элемента print("13. 'яблоко' в списке?", "яблоко" in fruits) print(" 'арбуз' в списке?", "арбуз" in fruits) ``` Ответ программы: ![Task 7.1.9.](images/Task7_1_9.png) 9. *Списки могут быть вложенными.* ``` python spis2=[spis1,[4,5,6,7]] print(spis2) ``` Ответ программы: ![Task 7.1.10.](images/Task7_1_10.png) 10. *Обращение к элементам вложенного списка.* ``` python print(spis2[0][1]) ``` Ответ программы: ![Task 7.1.11.](images/Task7_1_11.png) 11. *Изменение элемента вложенного списка.* ``` python spis2[0][1]=78 print(spis2[0][1]) ``` Ответ программы: ![Task 7.1.12.](images/Task7_1_12.png) *Теперь выведите на экран объект spis1. Объясните, почему он отличается от изначально заданного.* ```python print(spis1) ``` Ответ программы: ![Task_7_question](images/Task_7_question.png) Список spis1 вложен в список spis2. Изменяя элемент списка spis2 spis1 мы изменяем сам spis1. Поэтому при выводе spis1 мы получаем уже изменённый список. 12. *Объект-список, элементами которого будут объекты разных типов.* ``` python разнообразный_список = [ 42, # целое число "Привет, мир!", # строка True, # логическое значение 3.14159, # вещественное число ["вложенный", "список", 123], # вложенный список {"ключ": "значение"}, # словарь None, # специальное значение complex(2, 3), # комплексное число False # еще одно логическое значение ] print(разнообразный_список) ``` Ответ программы: ![Task 7.1.13.](images/Task7_1_13.png) ### 7.2. Кортеж. 1. *Объект-кортеж похож на список, но его нельзя изменить – кортежи являются последовательностями, как списки, но они являются неизменяемыми, как строки. В отличие от списка литерал кортежа заключается в круглые, а не в квадратные скобки. Кортежи также поддер­живают включение в них объектов различных типов и операции, типич­ные для последовательностей.* ``` python kort1=(222,'Kortezh',77+8j) print(kort1) ``` Ответ программы: ![Task 7.2.1.](images/Task7_2_1.png) 2. *Изменить кортеж нельзя, но можно его переопределить.* ```python kort1= kort1+(1,2) print(kort1) ``` Ответ программы: ![Task 7.2.2](images/Task7_2_2.png) 3. *Если надо добавить еще один элемент в кортеж.* ```python ss1b= 'Меня зовут: \n TerekhovFV' kort1= kort1+(ss1b,) #ЗДЕСЬ ЗАПЯТАЯ ОБЯЗАТЕЛЬНА, ИНАЧЕ ОШИБКА print(kort1) ``` Ответ программы: ![Task 7.2.3](images/Task7_2_3.png) 4. *Теперь переопределим кортеж с удалением комплексного элемента.* ```python kort2=kort1[:2]+kort1[3:] print(kort2) ``` Ответ программы: ![Task 7.2.4](images/Task7_2_4.png) 5. *Два важных метода кортежа (они есть также и у списков):* * Определение индекса заданного элемента: ```python print(kort1.index(2)) ``` Ответ программы: ![Task 7.2.5](images/Task7_2_5.png) * Подсчет числа вхождений заданного элемента в кортеже: ```python print(kort1.count(222)) ``` Ответ программы: ![Task 7.2.6](images/Task7_2_6.png) 6. *Методов append и pop у кортежей нет, т.к. они являются неизменяемыми.* ```python kort1[2]=90 ``` Ответ программы: ![Task 7.2.7](images/Task7_2_7.png) 7. *Объект-кортеж с элементами разных типов: число, строка, список, кортеж.* ```python разнообразный_кортеж = ( 100, # целое число "Hello, Tuple!", # строка [1, 2, 3, "список внутри кортежа"], # список (4, 5, 6), # вложенный кортеж 3.14, # вещественное число True, # логическое значение None # специальное значение ) print(разнообразный_кортеж) ``` Ответ программы: ![Task 7.2.8](images/Task7_2_8.png) ### 7.3. Словарь. 1. *Объект-словарь похож на ассоциативные массивы в других языках программирования. Его содержанием является совокупность пар: «ключ (key)»:«значение (value)». В качестве ключей могут использоваться неизменяемые типы объектов. Значениями могут быть объекты любого типа. Ссылка на ключ обеспечивает быстрый доступ к связанному с ним значению. В отличие от списков и кортежей совокупность элементов словаря не является упорядоченной (последовательностью). Его элементы могут изменяться с помощью операции присваивания значений.* ```python dic1={'Saratov':145, 'Orel':56, 'Vologda':45} print(dic1) ``` Ответ программы: ![Task 7.3.1](images/Task7_3_1.png) 2. *Обращение к элементам словаря не по индексам, а по ключам:* ```python print(dic1['Orel']) ``` Ответ программы: ![Task 7.3.2](images/Task7_3_2.png) 3. *Пополнение словаря (добавление элемента, изменение словаря):* ```python dic1['Pskov']=78 print(dic1) ``` Ответ программы: ![Task 7.3.3](images/Task7_3_3.png) *Обратите внимание на то, что в силу неупорядоченности словаря при его выводе элементы могут располагаться не в том порядке, в каком они задавались при его формировании.* *Для того, чтобы получить перечень ключей или значений из словаря следует использовать методы keys или values, создающие списки, соответственно, ключей или значений из словаря.* 4. *Функция sorted позволяет увидеть список упорядоченным по ключам или по значениям:* ```python print(sorted(dic1.keys())) print(sorted(dic1.values())) ``` Ответ программы: ![Task 7.3.4](images/Task7_3_4.png) 5. *Элементы словаря могут быть любого типа, в том числе и словарями.* ```python dic2={1:'mean',2:'standart deviation',3:'correlation'} dic3={'statistics':dic2,'POAS':['base','elementary','programming']} print(dic3['statistics'][2]) ``` Ответ программы: ![Task 7.3.5](images/Task7_3_5.png) 6. *Более сложный словарь из списка с элементами-кортежами с использованием функции dict:* ```python ss1b= 'Меня зовут: \n TerekhovFV' dic4=dict([(1,['A','B','C']),(2,[4,5]),('Q','Prim'),('Stroka',ss1b)]) print(dic4) ``` Ответ программы: ![Task 7.3.6](images/Task7_3_6.png) 7. *Еще один словарь из двух списков: один для ключей и другой – для значений, с помощью функций dict и zip:* ```python dic5=dict(zip(['A','B','C','Stroka'],[16,-3,9,ss1b])) print(dic5) ``` Ответ программы: ![Task 7.3.7](images/Task7_3_7.png) 8. *Объект-кортеж с 7 элементами и объект-список с 5 элементами и попробуйте создать из них словарь с помощью функций dict и zip.* ```python ключи = ('имя', 'возраст', 'город', 'профессия', 'стаж', 'зарплата', 'активен') значения = ['Анна', 28, 'Москва', 'программист', True] словарь = dict(zip(ключи, значения)) print(словарь) print(f"Количество элементов в словаре: {len(словарь)}") ``` Ответ программы: ![Task 7.3.7](images/Task7_3_7.png) ### 7.4. Множество. 1. *Объект-множество – это неупорядоченная совокупность неповторяющихся элементов. Эти элементы могут быть разных, но только неизменяемых типов (числа, строки, кортежи).* ```python mnoz1={'двигатель','датчик','линия связи','датчик','микропроцессор','двигатель'} print(mnoz1) ``` Ответ программы: ![Task 7.4.1.](images/Task7_4_1.png) 2. *Определение числа элементов:* ```python print(len(mnoz1)) ``` Ответ программы: ![Task 7.4.2.](images/Task7_4_2.png) 3. *Проверка наличия элемента во множестве:* ```python print('датчик' in mnoz1) ``` Ответ программы: ![Task 7.4.3.](images/Task7_4_3.png) 4. *Добавление элемента:* ```python mnoz1.add('реле') print(mnoz1) ``` Ответ программы: ![Task 7.4.4.](images/Task7_4_4.png) 5. *Удаление элемента:* ```python mnoz1.remove('линия связи') print(mnoz1) ``` Ответ программы: ![Task 7.4.5.](images/Task7_4_5.png) 6. *Объект-множество с элементами разных типов.* ```python разнообразное_множество = { 42, # целое число "hello", # строка 3.14, # вещественное число True, # логическое значение (True = 1) (1, 2, 3), # кортеж (неизменяемый) "world", # еще одна строка 100, # еще одно число False # логическое значение (False = 0) } print(разнообразное_множество) print('\n') разнообразное_множество.add("новый элемент") print(разнообразное_множество) print('\n') разнообразное_множество.remove("hello") print(разнообразное_множество) print('\n') print('hello' in разнообразное_множество) ``` Ответ программы: ![Task 7.4.6.](images/Task7_4_6.png) ## Общее контрольное задание. ```python import keyword familia = "Terekhov" first_letter = familia[0] sp_kw = list(keyword.kwlist) kort_nam = ("Фёдор", "Дима", "Вадим", "Екатерина") is_tuple = (type(kort_nam) is tuple) kort_nam = kort_nam + ("Павел", "Иван") count_dima = kort_nam.count("Дима") dict_bas = { "строка": familia, "символ (строка из 1 буквы)": first_letter, "список": sp_kw, "кортеж": kort_nam, "логический": is_tuple, } print(f"familia = {familia}") print(f"first_letter = {first_letter}") print(f"sp_kw (без 'nonlocal') содержит {len(sp_kw)} ключевых слов") print(f"Проверка типа kort_nam — tuple: {is_tuple}") print(f"kort_nam = {kort_nam}") print(f"Количество вхождений 'Дима' в kort_nam: {count_dima}") print("dict_bas (ключи → значение):") for k in dict_bas: print(f" {k}: {dict_bas[k]}") ``` Ответ программы: ![Control task](images/control_task.png) ## Индивидульное контрольное задание №9. *Создайте два объекта u=[1,2,3,4,5], v=[11,22,33,44,55]. К какому классу относятся эти объекты? Напишите инструкцию создания нового объекта-множества z с элементами из u и v.* ```python u=[1,2,3,4,5] v=[11,22,33,44,55] print(u) print(type(u)) print('\n') print(v) print(type(v)) print('\n') ``` Ответ программы: ```shell [1, 2, 3, 4, 5] [11, 22, 33, 44, 55] ``` Объекты u и v относятся к классу "Список". Класс список является изменяемым объектом, поэтому множество из них создать нельзя (элементы множества должны быть неизменяемыми объектами). Чтобы создать множество из двух списков, нам нужно сначала соединить эти два списка в один, а затем преобразовать их в множество. Эти действия можно сделать командой: ```python z=set(u+v) ``` Символ "+" соединяет два списка, команда set() преобразует их в множество. Код для решения индивидуального контрольного задания: ```python u=[1,2,3,4,5] v=[11,22,33,44,55] print(f"u = {u}") print(f"Класс объекта \"u\" = {type(u)}\n") print(f"v = {v}") print(f"Класс объекта \"v\" = {type(v)}\n") z=set(u+v) print(f"z = {z}") print(f"Класс объекта \"z\" = {type(z)}\n") ``` Ответ программы: ```shell u = [1, 2, 3, 4, 5] Класс объекта "u" = v = [11, 22, 33, 44, 55] Класс объекта "v" = z = {1, 2, 3, 4, 5, 33, 11, 44, 22, 55} Класс объекта "z" = ```