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

PythonBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar se uma lista contém apenas números em Python. Isso envolve a definição de listas numéricas, incluindo listas de inteiros, números de ponto flutuante e números mistos. Você criará um arquivo Python chamado numeric_lists.py e usará o editor VS Code para definir e imprimir essas listas no console.

O laboratório guia você através da definição de listas de inteiros, floats e uma mistura de ambos, demonstrando como criar e imprimir essas listas usando Python. Você usará a função print() para exibir o conteúdo de cada lista, garantindo que você entenda como trabalhar com listas numéricas em Python.

Definir Listas Numéricas

Nesta etapa, você aprenderá como definir listas numéricas em Python. Uma lista é uma coleção de itens e, neste caso, focaremos em listas contendo números. Listas são uma estrutura de dados fundamental em Python e são usadas para armazenar e manipular sequências ordenadas de dados.

Primeiro, vamos criar um novo arquivo Python chamado numeric_lists.py em seu diretório ~/project usando o editor VS Code.

~/project/numeric_lists.py

Agora, abra numeric_lists.py no editor e adicione o seguinte código para definir uma lista de inteiros:

## Define a list of integers
integer_list = [1, 2, 3, 4, 5]

## Print the list to the console
print(integer_list)

Salve o arquivo. Em seguida, abra um terminal no VS Code e navegue até o diretório ~/project. Você já deve estar neste diretório por padrão. Agora, execute o script Python usando o seguinte comando:

python numeric_lists.py

Você deve ver a seguinte saída:

[1, 2, 3, 4, 5]

Agora, vamos definir uma lista de números de ponto flutuante (números decimais):

Modifique o arquivo numeric_lists.py para incluir o seguinte:

## Define a list of floating-point numbers
float_list = [1.0, 2.5, 3.7, 4.2, 5.9]

## Print the list to the console
print(float_list)

Salve o arquivo e execute o script novamente:

python numeric_lists.py

Você deve ver a seguinte saída:

[1.0, 2.5, 3.7, 4.2, 5.9]

Você também pode criar uma lista contendo uma mistura de inteiros e números de ponto flutuante:

Modifique o arquivo numeric_lists.py para incluir o seguinte:

## Define a list of mixed numbers (integers and floats)
mixed_list = [1, 2.0, 3, 4.5, 5]

## Print the list to the console
print(mixed_list)

Salve o arquivo e execute o script novamente:

python numeric_lists.py

Você deve ver a seguinte saída:

[1, 2.0, 3, 4.5, 5]

Parabéns! Você definiu e imprimiu com sucesso listas numéricas em Python. Este é um passo fundamental para trabalhar com dados numéricos em Python.

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 lista são de um tipo numérico específico. Esta é uma técnica útil para validar dados e garantir que seu código se comporte conforme o esperado.

A função all() retorna True se todos os elementos em um iterável (como uma lista) forem verdadeiros. A função isinstance() verifica se um objeto é uma instância de uma classe ou tipo especificado.

Vamos modificar o arquivo numeric_lists.py que você criou na etapa anterior para incluir o seguinte código:

def check_if_all_numeric(data):
  """
  Check if all elements in the list are either integers or floats.
  """
  return all(isinstance(item, (int, float)) for item in data)

## Test cases
integer_list = [1, 2, 3, 4, 5]
float_list = [1.0, 2.5, 3.7, 4.2, 5.9]
mixed_list = [1, 2.0, 3, 4.5, 5]
string_list = [1, 2, "hello", 4.5, 5]

print(f"Integer list is all numeric: {check_if_all_numeric(integer_list)}")
print(f"Float list is all numeric: {check_if_all_numeric(float_list)}")
print(f"Mixed list is all numeric: {check_if_all_numeric(mixed_list)}")
print(f"String list is all numeric: {check_if_all_numeric(string_list)}")

Aqui está uma análise do código:

  • Definimos uma função check_if_all_numeric(data) que recebe uma lista como entrada.
  • Dentro da função, usamos all() com uma expressão geradora (isinstance(item, (int, float)) for item in data).
  • A expressão geradora itera por cada item na lista data e verifica se é uma instância de int ou float usando isinstance().
  • all() retorna True somente se todos os itens na lista forem inteiros ou floats; caso contrário, retorna False.
  • Em seguida, testamos a função com diferentes listas e imprimimos os resultados.

Salve o arquivo numeric_lists.py e execute-o a partir do terminal:

python numeric_lists.py

Você deve ver a seguinte saída:

Integer list is all numeric: True
Float list is all numeric: True
Mixed list is all numeric: True
String list is all numeric: False

Esta saída mostra que a função check_if_all_numeric() identifica corretamente se todos os elementos em uma lista são numéricos. A lista de strings contém uma string, então a função retorna False.

Lidar com Listas Vazias

Nesta etapa, você aprenderá como lidar com listas vazias ao usar as funções all() e isinstance(). Uma lista vazia é uma lista que não contém elementos. É importante lidar com listas vazias corretamente para evitar comportamentos inesperados em seu código.

Vamos modificar o arquivo numeric_lists.py que você criou nas etapas anteriores para incluir uma verificação de listas vazias na função check_if_all_numeric():

def check_if_all_numeric(data):
  """
  Check if all elements in the list are either integers or floats.
  Handle empty lists gracefully.
  """
  if not data:
    return True  ## An empty list can be considered as all numeric

  return all(isinstance(item, (int, float)) for item in data)

## Test cases
integer_list = [1, 2, 3, 4, 5]
float_list = [1.0, 2.5, 3.7, 4.2, 5.9]
mixed_list = [1, 2.0, 3, 4.5, 5]
string_list = [1, 2, "hello", 4.5, 5]
empty_list = []

print(f"Integer list is all numeric: {check_if_all_numeric(integer_list)}")
print(f"Float list is all numeric: {check_if_all_numeric(float_list)}")
print(f"Mixed list is all numeric: {check_if_all_numeric(mixed_list)}")
print(f"String list is all numeric: {check_if_all_numeric(string_list)}")
print(f"Empty list is all numeric: {check_if_all_numeric(empty_list)}")

Aqui está o que mudamos:

  • Adicionamos uma verificação no início da função check_if_all_numeric(): if not data:. Isso verifica se a lista está vazia.
  • Se a lista estiver vazia, retornamos True. Isso ocorre porque uma lista vazia pode ser considerada como satisfazendo a condição de que todos os seus elementos são numéricos (já que não possui elementos que não sejam numéricos).
  • Adicionamos um caso de teste empty_list.

Salve o arquivo numeric_lists.py e execute-o a partir do terminal:

python numeric_lists.py

Você deve ver a seguinte saída:

Integer list is all numeric: True
Float list is all numeric: True
Mixed list is all numeric: True
String list is all numeric: False
Empty list is all numeric: True

Como você pode ver, a função check_if_all_numeric() agora lida corretamente com listas vazias e retorna True para elas. Isso torna seu código mais robusto e menos propenso a erros ao lidar com listas potencialmente vazias.

Resumo

Neste laboratório, a etapa inicial se concentra na definição de listas numéricas em Python, abrangendo listas de inteiros, números de ponto flutuante e tipos numéricos mistos. O processo envolve a criação de um arquivo Python, numeric_lists.py, e o preenchimento com definições de lista usando colchetes e valores separados por vírgulas. A função print() é então usada para exibir essas listas no console, demonstrando como criar e gerar várias listas numéricas.

O laboratório enfatiza a estrutura de dados fundamental de listas em Python e sua capacidade de armazenar sequências ordenadas de dados numéricos. Ao definir e imprimir diferentes tipos de listas numéricas, incluindo inteiros, floats e uma combinação de ambos, o laboratório fornece uma introdução prática ao trabalho com dados numéricos dentro de listas Python.