Avez-vous une question? (216) 97 656 803 hajjriadh@gmail.com
Python

Les tuples en Python

Un cours complet pour maîtriser Les tuples en Python.

0 chapitres 0 QCM Accès gratuit

Les tuples en Python

  1. Objectifs

    • Comprendre ce qu'est un tuple en Python.
    • Savoir créer des tuples.
    • Connaître les méthodes et opérations courantes sur les tuples.
  2. Présentation

    • Les tuples sont constitués de plusieurs éléments, tout comme une liste, mais ils ne sont pas modifiables.
    • Un tuple est une liste qui ne peut plus être modifiée.
    • Les différences entre les tuples et les listes sont que les tuples ne peuvent pas être modifiés contrairement aux listes et les tuples utilisent des parenthèses, tandis que les listes utilisent des crochets.
    • Les éléments d'un tuple peuvent être de n'importe quel type de données Python valide allant des nombres, des chaînes, des listes, etc.
  3. Création de tuple en Python

    • Du point de vue de la syntaxe, un tuple est une collection d’éléments séparés par des virgules.
    • Pour créer un tuple mettre les différentes valeurs qui le composent séparées par des virgules. Ou mettre ces valeurs séparées par des virgules entre parenthèses.
    tuple1 = ('Chocolat', 'Pain', 123, 12.5)
    tuple2 = (1, 2, 3, 4, 5 )
    tuple3 = "a", "b", "c", "d"
    L'utilisation des parenthèses n'est pas nécessaire, mais il est vivement conseillé de mettre le tuple en évidence en l’enfermant dans une paire de parenthèses. Il s’agit simplement d’améliorer la lisibilité du code, mais vous savez que c’est important.
  4. Le tuple vide est écrit comme deux parenthèses ne contenant rien : tuple1 = ();
  5. Pour écrire un tuple contenant une seule valeur, vous devez inclure une virgule, même s'il n'y a qu'une seule valeur : tuple1 = (2, );
  6. Opérations de base sur les tuples

    • Les opérations que l’on peut effectuer sur des tuples sont syntaxiquement similaires à celles que l’on effectue sur les listes, si ce n’est que les tuples ne sont pas modifiables :
    • Les tuples répondent aux opérateurs + et * un peu comme des chaînes; ils signifient ici aussi la concaténation et la répétition, sauf que le résultat est un nouveau tuple, pas une chaîne.
  7. Comment accéder à un tuple en Python?

    • Pour accéder aux valeurs dans un tuple, Python fournit divers mécanismes intuitifs pour le faire.
    • Par indexation positive
      • Il existe plusieurs façons d'accéder aux éléments présents dans le tuple en Python. À l'aide d'un index, nous pouvons accéder aux éléments du tuple.
      • L'index commence à 0 et l'index doit toujours être un entier. Si nous utilisons un index autre qu'un entier comme float, cela entraînera TypeError.
      tuple1 = (3, 5, 6.7, "Python")
      print("Le quatrième élément du Tuple est:", tuple1[3])
      ###Production:###
      Le quatrième élément du Tuple est: Python
  8. Par indexation négative
    • Il est possible d'accéder aux éléments d'un tuple Python en utilisant un indice négatif.
    • Un indice négatif commencera toujours à -1 et -1 se réfère au dernier élément et -2 se réfère au dernier élément de seconde et donc le long.
    • Rappelez-vous toujours que l'indexation positive est utilisée pour itérer les éléments d'un tuple de manière avant, alors que l'indexation négative suit la manière arrière.
    tuple1 = (3, 5, 6.7, "Python")
    print("Le dernier élément du tuple est:", tuple1[-1])
    ###Production:###
    Le quatrième élément du Tuple est: Python
  9. Via l'opérateur de tranchage
    • En utilisant l'opérateur (:), nous pouvons accéder à une plage d'éléments à partir du tuple.
    • Le signe deux-points, c'est-à-dire un (:), représente l'opérateur de découpage en Python.
    tuple1 = (3, 5, 6.7, "Python")
    print("Les éléments du 2ème au 4ème sont:", tuple1[1:4])
    
  10. Accès aux éléments en quittant le premier
  11. lesMois = ('Janvier', 'Février', 'Mars', 'Avril', 'Mai',
               'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre',
               'Novembre', 'Décembre')
    print(lesMois[1:])
    """Production:
    ('Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet',
    'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre')
    """
  12. Accès aux éléments entre les première et cinquième positions
  13. lesMois = ('Janvier', 'Fevrier', 'Mars', 'Avril', 'Mai',
               'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre',
               'Novembre', 'Décembre')
    print(lesMois[1: 5])
    """Production:
    ('Fevrier', 'Mars', 'Avril', 'Mai')
    """
    
  14. Accéder aux éléments après la cinquième position
  15. lesMois = ('Janvier', 'Fevrier', 'Mars', 'Avril', 'Mai',
               'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre',
               'Novembre', 'Décembre')
    print(lesMois[5:])
    """Production:
    ('Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre')
    """
    
  16. Accès aux cinq premiers éléments
  17. lesMois = ('Janvier', 'Fevrier', 'Mars', 'Avril', 'Mai',
               'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre',
               'Novembre', 'Décembre')
    print(lesMois[: 5])
    """Production:
    ('Janvier', 'Fevrier', 'Mars', 'Avril', 'Mai')
    """
    
  18. Accès aux éléments qui apparaissent après cinq à partir de l'arrière
  19. lesMois = ('Janvier', 'Fevrier', 'Mars', 'Avril', 'Mai',
               'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre',
               'Novembre', 'Décembre')
    print(lesMois[: -5])
    """Production:
    ('Janvier', 'Fevrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet')
    """
    
  20. Accéder à cinq éléments par l'arrière
  21. lesMois = ('Janvier', 'Fevrier', 'Mars', 'Avril', 'Mai',
               'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre',
               'Novembre', 'Décembre')
    print(lesMois[-5:])
    """Production:
    ('Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre')
    """
    
  22. Accéder aux éléments du début à la fin
  23. lesMois = ('Janvier', 'Fevrier', 'Mars', 'Avril', 'Mai',
               'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre',
               'Novembre', 'Décembre')
    print(lesMois[:])
    """Production:
    ('Janvier', 'Fevrier', 'Mars', 'Avril', 'Mai',
    'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre',
    'Novembre', 'Décembre')
    """
    
  24. Par la boucle for
    • On peut également accéder aux éléments présents dans le tuple en utilisant la boucle for.
    lesMois = ('Janvier', 'Fevrier', 'Mars', 'Avril', 'Mai',
               'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre',
               'Novembre', 'Décembre')
    for element in lesMois:
        print(element, end=', ')
    
    """Production:
    Janvier, Fevrier, Mars, Avril, Mai,
    Juin, Juillet, Août, Septembre, Octobre,
    Novembre, Décembre,
    """
    
  25. Quelques opérations

    1. Utilisation de tuples dans les fonctions comme valeurs de retour
      • En général, une fonction ne renvoie qu'une seule valeur. Cependant, nous pouvons introduire un tuple et le définir comme valeur de retour pour la fonction.
      def square(n1, n2):
          return (n1*n1, n2*n2, n1*n2)
      
      print(square(4, 6))
      """
      Production:
      (16, 36, 24)
      """
    2. Comment faire disparaître un élément d'un tuple Python
      • Par définition, l'objet tuple est immuable. Par conséquent, il n'est pas possible d'en supprimer un élément. Cependant, une solution de contournement serait de convertir un tuple en liste, de supprimer l'élément souhaité de la liste et de le reconvertir en tuple.
      aTuple=(1, 2, 3, 4, 5, 6, 7)
      aListe=list(aTuple)
      
      print('Tuple de départ',aTuple)
      #Production: Tuple de départ (1, 2, 3, 4, 5, 6, 7)
      
      print('Liste de départ',aListe)
      #Production: Liste de départ [1, 2, 3, 4, 5, 6, 7]
      
      aListe.pop(1)
      print('Liste sans le deuxième élément',aListe)
      #Production:Liste sans le deuxième élément [1, 3, 4, 5, 6, 7]
      
      aTuple=tuple(aListe)
      print('Nouveau tuple',aTuple)
      #Production: Nouveau tuple (1, 3, 4, 5, 6, 7)
      
    3. Comment obtenir le nombre de fois qu'une valeur spécifiée apparaît dans un tuple Python
      • La méthode count () renvoie le nombre de fois qu'une valeur spécifiée apparaît dans le tuple.
      telephones = ("iphone", "samsung", "iphone", "iphone")
      print(telephones.count("iphone"))
      #Production:3
  26. TP

    • Objectifs :
      • Comprendre ce qu'est un tuple en Python.
      • Savoir créer des tuples.
      • Connaître les méthodes et opérations courantes sur les tuples.
    • Étapes à suivre :
      • 1- Créer un tuple nommé "nombres" contenant 5 nombres aléatoires compris entre 1 et 100 (inclus).
          import random
          nombres = tuple(random.sample(range(1, 101), 5))
          print(nombres)
      • 2- Imprimer le premier et le dernier élément du tuple en utilisant l'indexation.
          print(nombres[0])   # affiche 25
          print(nombres[-1])  # affiche 15
        • nombres[0] fait référence au premier élément du tuple.
        • nombres[-1] fait référence au dernier élément du tuple. Le -1 représente l'index du dernier élément, le -2 représente l'avant-dernier élément, et ainsi de suite.
      • 3- Créer un tuple contenant les noms de 5 de vos fruits préférés.
          fruits = ('banane', 'mangue', 'fraise', 'ananas', 'kiwi')
          print(fruits)
      • 4- Imprimer le deuxième et le troisième élément du tuple en utilisant l'indexation.
          print(fruits[1])   # affiche "mangue"
          print(fruits[2])   # affiche "fraise"
      • 5- Concaténer les deux tuples précédents pour créer un nouveau tuple contenant les nombres et les noms de fruits.
        • Pour concaténer les deux tuples précédents, c'est-à-dire le tuple "nombres" contenant les nombres aléatoires et le tuple "fruits" contenant les noms de fruits préférés, nous pouvons utiliser l'opérateur + pour créer un nouveau tuple qui contient tous les éléments des deux tuples, comme suit:
            import random
            nombres = tuple(random.sample(range(1, 101), 5))
            fruits = ('banane', 'mangue', 'fraise', 'ananas', 'kiwi')
            
            nombres_et_fruits = nombres + fruits
            print(nombres_et_fruits)
      • 6-
        • 6.1 Refaire la question numéro 1 pour générer 20 nombres.
        • 6.2 Utiliser la méthode count() pour compter le nombre de fois que le nombre 3 apparaît dans le premier tuple.
          import random
          nombres = tuple(random.sample(range(1, 101), 20))
          # Utiliser la méthode count() pour compter le nombre de fois que le nombre 3 apparaît
          nombre_de_3 = nombres.count(3)
          
          # Afficher le résultat
          print("Le nombre de fois que le nombre 3 apparaît dans le tuple est :", nombre_de_3)
      • 7- Utiliser la méthode index() pour trouver l'index de la première occurrence du nombre 3 dans le tuple.
          # Utiliser la méthode index() pour trouver l'index de la première occurrence du nombre 3
          index_3 = nombres.index(3)
          
          # Afficher le résultat
          print("L'index de la première occurrence du nombre 3 dans le tuple est :", index_3)
      • 8- Utiliser la méthode index() pour vérifier si le nombre 3 existe si il existe trouver l'index de la première occurrence du nombre 3 dans le tuple nombres.
          # Vérifier si le nombre 3 existe dans le tuple
          if 3 in nombres:
              # Trouver l'index de la première occurrence du nombre 3 dans le tuple
              index_3 = nombres.index(3)
              print("Le nombre 3 existe dans le tuple à l'index :", index_3)
          else:
              print("Le nombre 3 n'existe pas dans le tuple.")
          
      • 9- Utiliser la méthode sorted() pour trier le tuple nombres dans l'ordre croissant.
          # Trier le tuple dans l'ordre croissant en utilisant la méthode sorted()
          nombres_tries = sorted(nombres)
          
          # Afficher le tuple trié
          print("Le tuple trié dans l'ordre croissant est :", nombres_tries)
      • 10- Utiliser l'opérateur in pour vérifier si le nombre 5 est présent dans le tuple nombres.
          # Vérifier si le nombre 5 est présent dans le tuple
          if 5 in nombres:
              print("Le nombre 5 est présent dans le tuple.")
          else:
              print("Le nombre 5 n'est pas présent dans le tuple.")
      • 11- Utiliser la fonction len() pour connaître la longueur du deuxième tuple.
          # Utiliser la fonction len() pour connaître la longueur du tuple
          longueur = len(nombres)
          
          # Afficher la longueur du tuple
          print("La longueur du tuple est :", longueur)
      • 12- Créer un tuple vide.
          # Créer un tuple vide
          mon_tuple = ()
          
          # Afficher le tuple
          print(mon_tuple)
      • 13- Ajouter le nombre 1 à la fin du tuple vide en utilisant la méthode append().
        • Il n'est pas possible d'ajouter un élément à un tuple car les tuples sont immuables en Python, c'est-à-dire qu'une fois qu'ils sont créés, ils ne peuvent pas être modifiés. Si vous avez besoin d'un conteneur mutable, vous pouvez utiliser une liste à la place.
      • 14- Ajouter le nombre 2 à la fin du tuple en utilisant l'opérateur +.
        • Il n'est pas possible d'ajouter un élément à un tuple car les tuples sont immuables en Python, c'est-à-dire qu'une fois qu'ils sont créés, ils ne peuvent pas être modifiés. Si vous avez besoin d'un conteneur mutable, vous pouvez utiliser une liste à la place.
      • 15-Écrire un programme Python qui prend un tuple de nombres (3, 5, 8, 9, 7, 14, 2) et renvoie le produit de tous les éléments.
          # Définir le tuple de nombres
          nombres = (3, 5, 8, 9, 7, 14, 2)
          
          # Initialiser le produit à 1
          produit = 1
          
          # Calculer le produit de tous les éléments du tuple
          for n in nombres:
              produit *= n
          
          # Afficher le produit
          print("Le produit de tous les éléments est :", produit)
          
      • 16-Écrire un programme Python qui demande à l'utilisateur de saisir un entier compris entre 10 et 20. Cet entier représente la longueur de deux tuples remplis avec des nombres aléatoires à l'aide de la fonction random.sample(). Ensuite, le programme calcule la somme de chaque paire d'éléments correspondants dans les deux tuples et renvoie un nouveau tuple contenant les résultats.
        • Exemple: n= 11; t1=(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11); t2=(11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1); t_resultat=(12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12)
        import random
        
        while True:
            n = input("Veuillez saisir un entier entre 10 et 20 inclus (ou 'Q' pour quitter) : ")
            if n.lower() == "q":
                print("Au revoir !")
                break
            try:
                n = int(n)
                if n < 10 or n > 20:
                    print("Veuillez saisir un entier entre 10 et 20 inclus.")
                else:
                    t1 = tuple(random.sample(range(100), n))
                    t2 = tuple(random.sample(range(100), n))
                    t3 = tuple(x + y for x, y in zip(t1, t2))
                    print("Tuple 1 :", t1)
                    print("Tuple 2 :", t2)
                    print("Somme des tuples :", t3)
            except ValueError:
                print("Veuillez saisir un entier entre 10 et 20 inclus, ou 'Q' pour quitter.")
  27. 17-: Écrire un programme Python qui prend un tuple de chaînes de caractères et renvoie la chaîne de caractères la plus longue.
      # Définir le tuple de chaînes de caractères
      chaines = ("chat", "chien", "oiseau", "elephant", "souris")
      
      # Initialiser la chaîne la plus longue à la première chaîne du tuple
      plus_longue_chaine = chaines[0]
      
      # Trouver la chaîne la plus longue
      for chaine in chaines:
          if len(chaine) > len(plus_longue_chaine):
              plus_longue_chaine = chaine
      
      # Afficher la chaîne la plus longue
      print("La chaîne de caractères la plus longue est :", plus_longue_chaine)