Como Verificar se uma Tupla Contém Apenas Números em Python

PythonBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar se uma tupla contém apenas números (inteiros e floats) em Python. Você começará definindo tuplas numéricas, explorando como criar tuplas contendo inteiros, floats ou uma mistura de ambos. Isso envolve a criação de um arquivo numeric_tuple.py, adicionando definições de tuplas e executando o script para observar a saída.

O laboratório então o guiará através do uso da função all() em conjunto com isinstance() para verificar se todos os elementos dentro de uma tupla são de fato numéricos. Finalmente, você aprenderá como lidar com tuplas vazias de forma elegante ao realizar essa verificação.

Definir Tuplas Numéricas

Nesta etapa, você aprenderá como definir tuplas contendo apenas dados numéricos (inteiros e floats) em Python. Tuplas são uma estrutura de dados fundamental em Python, semelhante a listas, mas com uma diferença chave: elas são imutáveis, o que significa que seus elementos não podem ser alterados após a criação. Essa imutabilidade as torna úteis para representar coleções fixas de dados.

Vamos começar criando uma tupla simples contendo inteiros:

  1. Abra seu editor VS Code.

  2. Crie um novo arquivo chamado numeric_tuple.py no diretório ~/project.

    ## ~/project/numeric_tuple.py
    my_tuple = (1, 2, 3, 4, 5)
    print(my_tuple)
  3. Salve o arquivo.

  4. Abra seu terminal.

  5. Execute o script usando o comando python:

    python ~/project/numeric_tuple.py

    Você deve ver a seguinte saída:

    (1, 2, 3, 4, 5)

Agora, vamos criar uma tupla contendo floats:

  1. Modifique o arquivo numeric_tuple.py para incluir valores float:

    ## ~/project/numeric_tuple.py
    my_tuple = (1.0, 2.5, 3.7, 4.2, 5.9)
    print(my_tuple)
  2. Salve o arquivo.

  3. Execute o script novamente:

    python ~/project/numeric_tuple.py

    Você deve ver a seguinte saída:

    (1.0, 2.5, 3.7, 4.2, 5.9)

Tuplas também podem conter uma mistura de inteiros e floats:

  1. Modifique o arquivo numeric_tuple.py para incluir valores inteiros e float:

    ## ~/project/numeric_tuple.py
    my_tuple = (1, 2.5, 3, 4.2, 5)
    print(my_tuple)
  2. Salve o arquivo.

  3. Execute o script:

    python ~/project/numeric_tuple.py

    Você deve ver a seguinte saída:

    (1, 2.5, 3, 4.2, 5)

Em resumo, você pode definir tuplas contendo dados numéricos, incluindo os números (inteiros e floats) entre parênteses () e separando-os com vírgulas.

Usar all() com isinstance()

Nesta etapa, você aprenderá como usar a função all() em combinação com a função isinstance() para verificar se todos os elementos em uma tupla são numéricos. Esta é uma técnica útil para validar dados e garantir que seu código opere nos tipos corretos de valores.

Primeiro, vamos entender o que all() e isinstance() fazem:

  • all(iterable): Esta função retorna True se todos os elementos do iterável (por exemplo, uma tupla) forem verdadeiros (ou se o iterável estiver vazio). Ela retorna False se algum elemento for falso.
  • isinstance(object, classinfo): Esta função retorna True se o object é uma instância de classinfo (por exemplo, int, float). Caso contrário, ela retorna False.

Agora, vamos criar um script Python para verificar se todos os elementos em uma tupla são inteiros ou floats:

  1. Abra seu editor VS Code.

  2. Crie um novo arquivo chamado check_numeric_tuple.py no diretório ~/project.

    ## ~/project/check_numeric_tuple.py
    def is_numeric_tuple(my_tuple):
        return all(isinstance(item, (int, float)) for item in my_tuple)
    
    tuple1 = (1, 2.5, 3, 4.2, 5)
    tuple2 = (1, 2, 'a', 4, 5)
    tuple3 = (1.0, 2.0, 3.0)
    
    print(f"Tuple 1 is numeric: {is_numeric_tuple(tuple1)}")
    print(f"Tuple 2 is numeric: {is_numeric_tuple(tuple2)}")
    print(f"Tuple 3 is numeric: {is_numeric_tuple(tuple3)}")

    Neste script:

    • Definimos uma função is_numeric_tuple que recebe uma tupla como entrada.
    • Dentro da função, usamos all() com uma expressão geradora (isinstance(item, (int, float)) for item in my_tuple) para verificar se cada item na tupla é uma instância de int ou float.
    • Em seguida, testamos a função com três tuplas diferentes.
  3. Salve o arquivo.

  4. Abra seu terminal.

  5. Execute o script usando o comando python:

    python ~/project/check_numeric_tuple.py

    Você deve ver a seguinte saída:

    Tuple 1 is numeric: True
    Tuple 2 is numeric: False
    Tuple 3 is numeric: True

    Esta saída mostra que tuple1 e tuple3 contêm apenas valores numéricos, enquanto tuple2 contém uma string, então não é considerada uma tupla numérica.

Este exemplo demonstra como usar efetivamente all() e isinstance() para validar o conteúdo de uma tupla e garantir que todos os elementos estejam em conformidade com um tipo de dados específico.

Lidar com Tuplas Vazias

Nesta etapa, você aprenderá como lidar com tuplas vazias ao verificar valores numéricos. Uma tupla vazia é uma tupla sem elementos, representada como (). É importante considerar tuplas vazias em seu código para evitar erros potenciais e garantir que seu programa se comporte conforme o esperado.

Vamos modificar o script da etapa anterior para lidar com tuplas vazias:

  1. Abra seu editor VS Code.

  2. Abra o arquivo check_numeric_tuple.py no diretório ~/project.

    ## ~/project/check_numeric_tuple.py
    def is_numeric_tuple(my_tuple):
        if not my_tuple:
            return True  ## An empty tuple is considered numeric
        return all(isinstance(item, (int, float)) for item in my_tuple)
    
    tuple1 = (1, 2.5, 3, 4.2, 5)
    tuple2 = (1, 2, 'a', 4, 5)
    tuple3 = (1.0, 2.0, 3.0)
    tuple4 = () ## Empty tuple
    
    print(f"Tuple 1 is numeric: {is_numeric_tuple(tuple1)}")
    print(f"Tuple 2 is numeric: {is_numeric_tuple(tuple2)}")
    print(f"Tuple 3 is numeric: {is_numeric_tuple(tuple3)}")
    print(f"Tuple 4 is numeric: {is_numeric_tuple(tuple4)}")

    Neste script modificado:

    • Adicionamos uma verificação no início da função is_numeric_tuple: if not my_tuple: return True. Isso verifica se a tupla está vazia. Se estiver, a função retorna True, considerando uma tupla vazia como numérica.
    • Adicionamos uma tupla vazia tuple4 = () para testar a função.
  3. Salve o arquivo.

  4. Abra seu terminal.

  5. Execute o script usando o comando python:

    python ~/project/check_numeric_tuple.py

    Você deve ver a seguinte saída:

    Tuple 1 is numeric: True
    Tuple 2 is numeric: False
    Tuple 3 is numeric: True
    Tuple 4 is numeric: True

    Esta saída mostra que a tupla vazia tuple4 agora é tratada corretamente e considerada uma tupla numérica.

Lidar com tuplas vazias é uma boa prática para tornar seu código mais robusto e evitar comportamentos inesperados. Neste caso, optamos por considerar uma tupla vazia como numérica, mas você pode ajustar a lógica com base em seus requisitos específicos.

Resumo

Neste laboratório, a primeira etapa se concentra em definir tuplas numéricas em Python. Você aprendeu que tuplas são estruturas de dados imutáveis, semelhantes a listas, e são definidas usando parênteses (). Você pode criar tuplas contendo inteiros, floats ou uma mistura de ambos, separando os elementos com vírgulas.

O laboratório então prossegue para demonstrar como verificar se uma tupla contém apenas números usando a função all() em conjunto com isinstance(). (O conteúdo é truncado na descrição original do laboratório.)