Comment vérifier si un tuple 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 laboratoire (lab), vous apprendrez à vérifier si un tuple ne contient que des nombres (entiers et flottants) en Python. Vous commencerez par définir des tuples numériques, en explorant comment créer des tuples contenant des entiers, des flottants ou un mélange des deux. Cela implique de créer un fichier numeric_tuple.py, d'ajouter des définitions de tuples et d'exécuter le script pour observer la sortie.

Le laboratoire vous guidera ensuite à travers l'utilisation de la fonction all() en conjonction avec isinstance() pour vérifier que tous les éléments d'un tuple sont bien numériques. Enfin, vous apprendrez à gérer correctement les tuples vides lors de cette vérification.


Skills Graph

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

Définir des tuples numériques

Dans cette étape, vous apprendrez à définir des tuples ne contenant que des données numériques (entiers et flottants) en Python. Les tuples sont une structure de données fondamentale en Python, similaires aux listes, mais avec une différence clé : ils sont immuables, ce qui signifie que leurs éléments ne peuvent pas être modifiés après leur création. Cette immuabilité les rend utiles pour représenter des collections de données fixes.

Commençons par créer un simple tuple contenant des entiers :

  1. Ouvrez votre éditeur VS Code.

  2. Créez un nouveau fichier nommé numeric_tuple.py dans le répertoire ~/project.

    ## ~/project/numeric_tuple.py
    my_tuple = (1, 2, 3, 4, 5)
    print(my_tuple)
  3. Enregistrez le fichier.

  4. Ouvrez votre terminal.

  5. Exécutez le script en utilisant la commande python :

    python ~/project/numeric_tuple.py

    Vous devriez voir la sortie suivante :

    (1, 2, 3, 4, 5)

Maintenant, créons un tuple contenant des flottants :

  1. Modifiez le fichier numeric_tuple.py pour inclure des valeurs flottantes :

    ## ~/project/numeric_tuple.py
    my_tuple = (1.0, 2.5, 3.7, 4.2, 5.9)
    print(my_tuple)
  2. Enregistrez le fichier.

  3. Exécutez le script à nouveau :

    python ~/project/numeric_tuple.py

    Vous devriez voir la sortie suivante :

    (1.0, 2.5, 3.7, 4.2, 5.9)

Les tuples peuvent également contenir un mélange d'entiers et de flottants :

  1. Modifiez le fichier numeric_tuple.py pour inclure à la fois des valeurs entières et flottantes :

    ## ~/project/numeric_tuple.py
    my_tuple = (1, 2.5, 3, 4.2, 5)
    print(my_tuple)
  2. Enregistrez le fichier.

  3. Exécutez le script :

    python ~/project/numeric_tuple.py

    Vous devriez voir la sortie suivante :

    (1, 2.5, 3, 4.2, 5)

En résumé, vous pouvez définir des tuples contenant des données numériques en entourant les nombres (entiers et flottants) de parenthèses () et en les séparant par des virgules.

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'un tuple sont numériques. Cette technique est utile pour valider les données et vous assurer que votre code fonctionne avec les bons types de valeurs.

Tout d'abord, comprenons ce que font all() et isinstance() :

  • all(iterable) : Cette fonction renvoie True si tous les éléments de l'itérable (par exemple, un tuple) sont vrais (ou si l'itérable est vide). Elle renvoie False si au moins un élément est faux.
  • isinstance(object, classinfo) : Cette fonction renvoie True si l'object est une instance de classinfo (par exemple, int, float). Sinon, elle renvoie False.

Maintenant, créons un script Python pour vérifier si tous les éléments d'un tuple sont des entiers ou des flottants :

  1. Ouvrez votre éditeur VS Code.

  2. Créez un nouveau fichier nommé check_numeric_tuple.py dans le répertoire ~/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)}")

    Dans ce script :

    • Nous définissons une fonction is_numeric_tuple qui prend un tuple 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 my_tuple) pour vérifier si chaque item du tuple est une instance de int ou de float.
    • Nous testons ensuite la fonction avec trois tuples différents.
  3. Enregistrez le fichier.

  4. Ouvrez votre terminal.

  5. Exécutez le script en utilisant la commande python :

    python ~/project/check_numeric_tuple.py

    Vous devriez voir la sortie suivante :

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

    Cette sortie montre que tuple1 et tuple3 ne contiennent que des valeurs numériques, tandis que tuple2 contient une chaîne de caractères, donc il n'est pas considéré comme un tuple numérique.

Cet exemple démontre comment utiliser efficacement all() et isinstance() pour valider le contenu d'un tuple et vous assurer que tous les éléments correspondent à un type de données spécifique.

Gérer les tuples vides

Dans cette étape, vous apprendrez à gérer les tuples vides lors de la vérification des valeurs numériques. Un tuple vide est un tuple sans éléments, représenté par (). Il est important de prendre en compte les tuples vides dans votre code pour éviter les erreurs potentielles et vous assurer que votre programme se comporte comme prévu.

Modifions le script de l'étape précédente pour gérer les tuples vides :

  1. Ouvrez votre éditeur VS Code.

  2. Ouvrez le fichier check_numeric_tuple.py dans le répertoire ~/project.

    ## ~/project/check_numeric_tuple.py
    def is_numeric_tuple(my_tuple):
        if not my_tuple:
            return True  ## Un tuple vide est considéré comme numérique
        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 = () ## Tuple vide
    
    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)}")

    Dans ce script modifié :

    • Nous avons ajouté une vérification au début de la fonction is_numeric_tuple : if not my_tuple: return True. Cela vérifie si le tuple est vide. Si c'est le cas, la fonction renvoie True, considérant un tuple vide comme numérique.
    • Nous avons ajouté un tuple vide tuple4 = () pour tester la fonction.
  3. Enregistrez le fichier.

  4. Ouvrez votre terminal.

  5. Exécutez le script en utilisant la commande python :

    python ~/project/check_numeric_tuple.py

    Vous devriez voir la sortie suivante :

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

    Cette sortie montre que le tuple vide tuple4 est maintenant correctement géré et considéré comme un tuple numérique.

Gérer les tuples vides est une bonne pratique pour rendre votre code plus robuste et éviter un comportement inattendu. Dans ce cas, nous avons choisi de considérer un tuple vide comme numérique, mais vous pouvez ajuster la logique en fonction de vos besoins spécifiques.

Résumé

Dans ce laboratoire, la première étape se concentre sur la définition de tuples numériques en Python. Vous avez appris que les tuples sont des structures de données immuables, similaires aux listes, et sont définis à l'aide de parenthèses (). Vous pouvez créer des tuples contenant des entiers, des flottants ou un mélange des deux, en séparant les éléments par des virgules.

Le laboratoire montre ensuite comment vérifier si un tuple ne contient que des nombres en utilisant la fonction all() en conjonction avec isinstance(). (Le contenu est tronqué dans la description originale du laboratoire.)