Введение
В этом лабораторном занятии (LabEx) вы научитесь определять, является ли переменная множеством (set) в Python. Сначала вы познакомитесь с основными характеристиками множеств, включая их неупорядоченность и уникальность элементов. В ходе практических упражнений вы создадите множества, используя как фигурные скобки, так и конструктор set(), и изучите общие операции над множествами, такие как добавление и удаление элементов, а также проверку на принадлежность.
Затем в рамках лабораторного занятия вы научитесь использовать функцию type() и функцию isinstance() для определения, является ли переменная действительно множеством. По завершении этого занятия вы получите знания и навыки, которые позволят вам уверенно определять множества в своем Python-коде.
Понять множества (sets)
На этом этапе вы узнаете о множествах (sets) в Python. Множества представляют собой неупорядоченные коллекции уникальных элементов. Это означает, что множество не может содержать дубликаты значений, и порядок элементов в множестве не гарантирован. Множества полезны для выполнения математических операций над множествами, таких как объединение, пересечение и разность.
Начнем с создания множества. Вы можете создать множество, используя фигурные скобки {} или конструктор set().
Откройте редактор VS Code в среде LabEx.
Создайте новый файл с именем
sets_example.pyв директории~/project.## Create a set using curly braces my_set = {1, 2, 3, 4, 5} print(my_set) ## Create a set using the set() constructor another_set = set([3, 4, 5, 6, 7]) print(another_set)Запустите скрипт с помощью команды
pythonв терминале:python ~/project/sets_example.pyВы должны увидеть следующий вывод:
{1, 2, 3, 4, 5} {3, 4, 5, 6, 7}
Теперь давайте рассмотрим некоторые общие операции над множествами.
Добавьте следующий код в файл
sets_example.py:## Add an element to a set my_set.add(6) print(my_set) ## Remove an element from a set my_set.remove(1) print(my_set) ## Check if an element is in a set print(3 in my_set) print(1 in my_set)Запустите скрипт еще раз:
python ~/project/sets_example.pyВы должны увидеть вывод, похожий на следующий:
{1, 2, 3, 4, 5, 6} {2, 3, 4, 5, 6} True False
Множества особенно полезны для удаления дубликатов элементов из списка.
Добавьте следующий код в файл
sets_example.py:## Create a list with duplicate elements my_list = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4] print(my_list) ## Convert the list to a set to remove duplicates unique_elements = set(my_list) print(unique_elements)Запустите скрипт:
python ~/project/sets_example.pyВывод должен быть следующим:
[1, 2, 2, 3, 3, 3, 4, 4, 4, 4] {1, 2, 3, 4}
Как вы можете видеть, множество unique_elements содержит только уникальные элементы из исходного списка.
Использование функции type() для идентификации
На этом этапе вы узнаете, как использовать функцию type() в Python для определения типа данных переменной. Понимание типов данных является важным аспектом написания корректного и эффективного кода.
Функция type() возвращает тип объекта. Давайте посмотрим, как она работает с разными типами данных.
Откройте редактор VS Code в среде LabEx.
Создайте новый файл с именем
type_example.pyв директории~/project.## Check the type of an integer x = 10 print(type(x)) ## Check the type of a float y = 3.14 print(type(y)) ## Check the type of a string z = "Hello" print(type(z)) ## Check the type of a boolean a = True print(type(a)) ## Check the type of a list b = [1, 2, 3] print(type(b)) ## Check the type of a tuple c = (1, 2, 3) print(type(c)) ## Check the type of a set d = {1, 2, 3} print(type(d)) ## Check the type of a dictionary e = {"name": "Alice", "age": 30} print(type(e))Запустите скрипт с помощью команды
pythonв терминале:python ~/project/type_example.pyВы должны увидеть следующий вывод:
<class 'int'> <class 'float'> <class 'str'> <class 'bool'> <class 'list'> <class 'tuple'> <class 'set'> <class 'dict'>
Вывод показывает тип данных каждой переменной. Например, <class 'int'> означает, что переменная является целым числом, а <class 'str'> - что переменная является строкой.
Понимание типа данных переменной важно, так как оно определяет, какие операции можно выполнять с этой переменной. Например, арифметические операции можно выполнять с целыми числами и числами с плавающей точкой, но не со строками.
Давайте рассмотрим пример того, как функцию type() можно использовать для проверки, является ли переменная определенного типа, перед выполнением операции.
Добавьте следующий код в файл
type_example.py:## Check if a variable is an integer before adding 5 to it num = 10 if type(num) == int: result = num + 5 print(result) else: print("Variable is not an integer") ## Check if a variable is a string before concatenating it with another string text = "Hello" if type(text) == str: greeting = text + ", World!" print(greeting) else: print("Variable is not a string")Запустите скрипт еще раз:
python ~/project/type_example.pyВы должны увидеть следующий вывод:
15 Hello, World!
В этом примере функция type() используется для проверки, является ли переменная num целым числом и переменная text строкой, перед выполнением операций сложения и конкатенации соответственно.
Подтверждение с использованием isinstance()
На этом этапе вы узнаете, как использовать функцию isinstance() в Python для проверки, является ли объект экземпляром определенного класса или типа. Это более надежный и рекомендуемый способ проверки типов данных по сравнению с использованием функции type().
Функция isinstance() принимает два аргумента: объект, который нужно проверить, и класс или тип, с которым нужно сравнить. Она возвращает True, если объект является экземпляром указанного класса или типа, и False в противном случае.
Откройте редактор VS Code в среде LabEx.
Создайте новый файл с именем
isinstance_example.pyв директории~/project.## Check if a variable is an integer x = 10 print(isinstance(x, int)) ## Check if a variable is a float y = 3.14 print(isinstance(y, float)) ## Check if a variable is a string z = "Hello" print(isinstance(z, str)) ## Check if a variable is a boolean a = True print(isinstance(a, bool)) ## Check if a variable is a list b = [1, 2, 3] print(isinstance(b, list)) ## Check if a variable is a tuple c = (1, 2, 3) print(isinstance(c, tuple)) ## Check if a variable is a set d = {1, 2, 3} print(isinstance(d, set)) ## Check if a variable is a dictionary e = {"name": "Alice", "age": 30} print(isinstance(e, dict))Запустите скрипт с помощью команды
pythonв терминале:python ~/project/isinstance_example.pyВы должны увидеть следующий вывод:
True True True True True True True True
Все переменные являются экземплярами типов, которые мы проверяли, поэтому функция isinstance() вернула True в каждом случае.
Функция isinstance() особенно полезна при работе с наследованием. Если класс наследует от другого класса, объект подкласса также считается экземпляром родительского класса.
Добавьте следующий код в файл
isinstance_example.py:class Animal: pass class Dog(Animal): pass my_dog = Dog() ## Check if my_dog is an instance of Dog print(isinstance(my_dog, Dog)) ## Check if my_dog is an instance of Animal print(isinstance(my_dog, Animal))Запустите скрипт еще раз:
python ~/project/isinstance_example.pyВы должны увидеть следующий вывод:
True True
В этом примере класс Dog наследует от класса Animal. Поэтому объект my_dog является экземпляром как класса Dog, так и класса Animal.
В целом, использование функции isinstance() предпочтительнее, чем использование функции type(), так как оно корректно обрабатывает наследование и более гибко.
Резюме
В этом практическом занятии вы узнали о множествах (sets) в Python, которые представляют собой неупорядоченные коллекции уникальных элементов. Вы создали множества с использованием фигурных скобок {} и конструктора set(), а также выполнили общие операции над множествами, такие как добавление и удаление элементов.
Кроме того, вы изучили, как множества можно использовать для удаления дубликатов из списка путем преобразования списка в множество. Вы также узнали, как проверять наличие элемента в множестве с помощью оператора in.



