Como Verificar se uma Variável é um Conjunto em Python

PythonBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como identificar se uma variável é um conjunto (set) em Python. Começará compreendendo as características fundamentais dos conjuntos, incluindo sua natureza desordenada e a unicidade de seus elementos. Através de exercícios práticos, você criará conjuntos usando chaves ({}) e o construtor set(), e explorará operações comuns de conjuntos, como adicionar e remover elementos, bem como verificar a pertinência (membership).

O laboratório o guiará então através do uso da função type() e da função isinstance() para determinar se uma variável é de fato um conjunto. Ao final deste laboratório, você estará equipado com o conhecimento e as habilidades para identificar com confiança conjuntos em seu código Python.

Entendendo Conjuntos

Nesta etapa, você aprenderá sobre conjuntos (sets) em Python. Conjuntos são coleções desordenadas de elementos únicos. Isso significa que um conjunto não pode conter valores duplicados, e a ordem dos elementos em um conjunto não é garantida. Conjuntos são úteis para realizar operações matemáticas de conjuntos, como união, interseção e diferença.

Vamos começar criando um conjunto. Você pode criar um conjunto usando chaves {} ou o construtor set().

  1. Abra o editor VS Code no ambiente LabEx.

  2. Crie um novo arquivo chamado sets_example.py no diretório ~/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)
  3. Execute o script usando o comando python no terminal:

    python ~/project/sets_example.py

    Você deve ver a seguinte saída:

    {1, 2, 3, 4, 5}
    {3, 4, 5, 6, 7}

Agora, vamos explorar algumas operações comuns de conjuntos.

  1. Adicione o seguinte código ao seu arquivo 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)
  2. Execute o script novamente:

    python ~/project/sets_example.py

    Você deve ver uma saída semelhante a esta:

    {1, 2, 3, 4, 5, 6}
    {2, 3, 4, 5, 6}
    True
    False

Conjuntos são particularmente úteis para remover elementos duplicados de uma lista.

  1. Adicione o seguinte código ao seu arquivo 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)
  2. Execute o script:

    python ~/project/sets_example.py

    A saída deve ser:

    [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
    {1, 2, 3, 4}

Como você pode ver, o conjunto unique_elements contém apenas os elementos únicos da lista original.

Usando type() para Identificar

Nesta etapa, você aprenderá como usar a função type() em Python para identificar o tipo de dado de uma variável. Compreender os tipos de dados é crucial para escrever código correto e eficiente.

A função type() retorna o tipo de um objeto. Vamos ver como ela funciona com diferentes tipos de dados.

  1. Abra o editor VS Code no ambiente LabEx.

  2. Crie um novo arquivo chamado type_example.py no diretório ~/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))
  3. Execute o script usando o comando python no terminal:

    python ~/project/type_example.py

    Você deve ver a seguinte saída:

    <class 'int'>
    <class 'float'>
    <class 'str'>
    <class 'bool'>
    <class 'list'>
    <class 'tuple'>
    <class 'set'>
    <class 'dict'>

A saída mostra o tipo de dado de cada variável. Por exemplo, <class 'int'> indica que a variável é um inteiro, e <class 'str'> indica que a variável é uma string.

Compreender o tipo de dado de uma variável é importante porque determina quais operações você pode realizar nessa variável. Por exemplo, você pode realizar operações aritméticas em inteiros e floats, mas não em strings.

Vamos ver um exemplo de como a função type() pode ser usada para verificar se uma variável é de um tipo específico antes de realizar uma operação.

  1. Adicione o seguinte código ao seu arquivo 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")
  2. Execute o script novamente:

    python ~/project/type_example.py

    Você deve ver a seguinte saída:

    15
    Hello, World!

Neste exemplo, a função type() é usada para verificar se a variável num é um inteiro e a variável text é uma string antes de realizar as operações de adição e concatenação, respectivamente.

Confirmando com isinstance()

Nesta etapa, você aprenderá como usar a função isinstance() em Python para confirmar se um objeto é uma instância de uma classe ou tipo específico. Esta é uma maneira mais robusta e recomendada de verificar tipos de dados em comparação com o uso de type().

A função isinstance() recebe dois argumentos: o objeto a ser verificado e a classe ou tipo a ser comparado. Ela retorna True se o objeto é uma instância da classe ou tipo especificado, e False caso contrário.

  1. Abra o editor VS Code no ambiente LabEx.

  2. Crie um novo arquivo chamado isinstance_example.py no diretório ~/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))
  3. Execute o script usando o comando python no terminal:

    python ~/project/isinstance_example.py

    Você deve ver a seguinte saída:

    True
    True
    True
    True
    True
    True
    True
    True

Todas as variáveis são instâncias dos tipos que verificamos, então isinstance() retornou True em cada caso.

isinstance() é particularmente útil ao lidar com herança. Se uma classe herda de outra classe, um objeto da subclasse também é considerado uma instância da classe pai.

  1. Adicione o seguinte código ao seu arquivo 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))
  2. Execute o script novamente:

    python ~/project/isinstance_example.py

    Você deve ver a seguinte saída:

    True
    True

Neste exemplo, Dog herda de Animal. Portanto, my_dog é uma instância de Dog e Animal.

Usar isinstance() é geralmente preferível a type() porque ele lida corretamente com a herança e é mais flexível.

Resumo

Neste laboratório, você aprendeu sobre conjuntos (sets) em Python, que são coleções não ordenadas de elementos únicos. Você criou conjuntos usando chaves {} e o construtor set(), e realizou operações comuns em conjuntos, como adicionar e remover elementos.

Além disso, você explorou como os conjuntos podem ser usados para remover elementos duplicados de uma lista, convertendo a lista em um conjunto. Você também aprendeu como verificar a pertinência (membership) em um conjunto usando o operador in.