Comment vérifier si une liste ne contient que des nombres en Python

PythonPythonBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce labo, vous apprendrez à vérifier si une liste ne contient que des nombres en Python. Cela implique de définir des listes numériques, y compris des listes d'entiers, de nombres à virgule flottante et de nombres mixtes. Vous allez créer un fichier Python nommé numeric_lists.py et utiliser l'éditeur VS Code pour définir et afficher ces listes dans la console.

Le labo vous guide tout au long de la définition de listes d'entiers, de nombres flottants et d'un mélange des deux, en démontrant comment créer et afficher ces listes à l'aide de Python. Vous utiliserez la fonction print() pour afficher le contenu de chaque liste, afin de vous assurer que vous comprenez comment manipuler des listes numériques en Python.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python/BasicConceptsGroup -.-> python/numeric_types("Numeric Types") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/DataStructuresGroup -.-> python/lists("Lists") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/numeric_types -.-> lab-559527{{"Comment vérifier si une liste ne contient que des nombres en Python"}} python/conditional_statements -.-> lab-559527{{"Comment vérifier si une liste ne contient que des nombres en Python"}} python/lists -.-> lab-559527{{"Comment vérifier si une liste ne contient que des nombres en Python"}} python/build_in_functions -.-> lab-559527{{"Comment vérifier si une liste ne contient que des nombres en Python"}} python/data_collections -.-> lab-559527{{"Comment vérifier si une liste ne contient que des nombres en Python"}} end

Définir des listes numériques

Dans cette étape, vous apprendrez à définir des listes numériques en Python. Une liste est une collection d'éléments, et dans ce cas, nous allons nous concentrer sur les listes contenant des nombres. Les listes sont une structure de données fondamentale en Python et sont utilisées pour stocker et manipuler des séquences ordonnées de données.

Tout d'abord, créons un nouveau fichier Python nommé numeric_lists.py dans votre répertoire ~/project en utilisant l'éditeur VS Code.

~/project/numeric_lists.py

Maintenant, ouvrez numeric_lists.py dans l'éditeur et ajoutez le code suivant pour définir une liste d'entiers :

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

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

Enregistrez le fichier. Ensuite, ouvrez un terminal dans VS Code et accédez au répertoire ~/project. Vous devriez déjà être dans ce répertoire par défaut. Maintenant, exécutez le script Python en utilisant la commande suivante :

python numeric_lists.py

Vous devriez voir la sortie suivante :

[1, 2, 3, 4, 5]

Maintenant, définissons une liste de nombres à virgule flottante (nombres décimaux) :

Modifiez le fichier numeric_lists.py pour inclure ce qui suit :

## 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)

Enregistrez le fichier et exécutez le script à nouveau :

python numeric_lists.py

Vous devriez voir la sortie suivante :

[1.0, 2.5, 3.7, 4.2, 5.9]

Vous pouvez également créer une liste contenant un mélange d'entiers et de nombres à virgule flottante :

Modifiez le fichier numeric_lists.py pour inclure ce qui suit :

## 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)

Enregistrez le fichier et exécutez le script à nouveau :

python numeric_lists.py

Vous devriez voir la sortie suivante :

[1, 2.0, 3, 4.5, 5]

Félicitations ! Vous avez réussi à définir et à afficher des listes numériques en Python. C'est une étape fondamentale pour travailler avec des données numériques en Python.

Utiliser all() avec isinstance()

Dans cette étape, vous apprendrez à utiliser la fonction all() en combinaison avec la fonction isinstance() pour vérifier si tous les éléments d'une liste sont d'un type numérique spécifique. Cette technique est utile pour valider les données et vous assurer que votre code se comporte comme prévu.

La fonction all() renvoie True si tous les éléments d'un itérable (comme une liste) sont vrais. La fonction isinstance() vérifie si un objet est une instance d'une classe ou d'un type spécifié.

Modifions le fichier numeric_lists.py que vous avez créé à l'étape précédente pour inclure le code suivant :

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)}")

Voici une explication du code :

  • Nous définissons une fonction check_if_all_numeric(data) qui prend une liste en entrée.
  • À l'intérieur de la fonction, nous utilisons all() avec une expression génératrice (isinstance(item, (int, float)) for item in data).
  • L'expression génératrice itère sur chaque item de la liste data et vérifie s'il est une instance de int ou de float en utilisant isinstance().
  • all() renvoie True seulement si tous les éléments de la liste sont des entiers ou des nombres à virgule flottante ; sinon, il renvoie False.
  • Nous testons ensuite la fonction avec différentes listes et affichons les résultats.

Enregistrez le fichier numeric_lists.py et exécutez-le depuis le terminal :

python numeric_lists.py

Vous devriez voir la sortie suivante :

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

Cette sortie montre que la fonction check_if_all_numeric() identifie correctement si tous les éléments d'une liste sont numériques. La liste de chaînes de caractères contient une chaîne, donc la fonction renvoie False.

Gérer les listes vides

Dans cette étape, vous apprendrez à gérer les listes vides lorsque vous utilisez les fonctions all() et isinstance(). Une liste vide est une liste qui ne contient aucun élément. Il est important de gérer correctement les listes vides pour éviter un comportement inattendu de votre code.

Modifions le fichier numeric_lists.py que vous avez créé dans les étapes précédentes pour inclure une vérification des listes vides dans la fonction 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)}")

Voici ce que nous avons modifié :

  • Nous avons ajouté une vérification au début de la fonction check_if_all_numeric() : if not data:. Cela vérifie si la liste est vide.
  • Si la liste est vide, nous renvoyons True. En effet, une liste vide peut être considérée comme satisfaisant la condition que tous ses éléments sont numériques (puisqu'elle n'a aucun élément non numérique).
  • Nous avons ajouté un cas de test pour une liste vide (empty_list).

Enregistrez le fichier numeric_lists.py et exécutez-le depuis le terminal :

python numeric_lists.py

Vous devriez voir la sortie suivante :

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

Comme vous pouvez le voir, la fonction check_if_all_numeric() gère maintenant correctement les listes vides et renvoie True pour elles. Cela rend votre code plus robuste et moins sujet à des erreurs lorsqu'il s'agit de listes potentiellement vides.

Résumé

Dans ce laboratoire (lab), la première étape consiste à définir des listes numériques en Python, en couvrant les listes d'entiers, de nombres à virgule flottante et de types numériques mixtes. Le processus implique la création d'un fichier Python, numeric_lists.py, et son remplissage avec des définitions de listes en utilisant des crochets et des valeurs séparées par des virgules. La fonction print() est ensuite utilisée pour afficher ces listes dans la console, démontrant ainsi comment créer et afficher diverses listes numériques.

Le laboratoire met l'accent sur la structure de données fondamentale des listes en Python et leur capacité à stocker des séquences ordonnées de données numériques. En définissant et en affichant différents types de listes numériques, y compris des entiers, des nombres à virgule flottante et une combinaison des deux, le laboratoire offre une introduction pratique à la manipulation de données numériques au sein des listes Python.