Aide en Philo

Cours de NSI Traitement des données

Publié le 24/04/2025

Extrait du document

« Chapitre 3 Traitement de données en table Nous avons manipulé des variables avec des types simples : int, bool, float, str. Ce sont des conteneurs ne contenant qu'une valeur. Nous avons manipulé aussi, sans vraiment l'étudier, des types construits (ou types abstraits) : liste, tuple.

Ces types de données s'appellent des séquences. Dans ce cours nous allons étudier deux types de séquence : les tableaux et les p-uplets.

En python, les tableaux s'appellent les listes et les p-uplets s'appellent les tuples. 1.

Séquence Une séquence est une famille d'éléments indexée par les entiers strictement positifs inférieurs ou égaux à un certain entier, ce dernier étant appelé longueur de la séquence. Ce terme de séquence est à rapprocher du concept de suite en mathématiques. En informatique, un tableau est une structure de données représentant une séquence finie d'éléments auxquels on peut accéder efficacement par leur position, ou indice, dans la séquence. C'est un type de conteneur que l'on retrouve dans un grand nombre de langages de programmation. En Python, une séquence est une collection ordonnée d’objets qui permet d’accéder à ses éléments par leur numéro de position dans la séquence.

Les listes et les tuples sont des séquences. Il y a des points communs et des différences entre ces deux types. 2.

Le type construit p-uplet (tuple en python) 2.1 Définition p-uplet, tuple en python Un p-uplet est une séquence immutable, c'est-à-dire une suite indexée de valeurs (de n'importe quel type) que l'on ne peut pas modifier. En Python, un p-uplet est de type tuple et est indexé à partir de 0. Exemple 1 Dans un jeu vidéo, vous voulez identifier des lieux précis. Pour cela, vous associer à chaque lieu un triplet (nom, abscisse, ordonnée). Ainsi, le château du joueur A pourra ainsi est modélisé par une séquence comme ("fort_1",15,-56.2). Remarquez que les éléments du p-uplet sont de trois types différents ici. 1 2.2 Construire les objets tuple PROPRIETE 1 Construire un objet tuple en python. Un tuple est défini à l'aide de virgules et de parenthèses. Les parenthèses sont nécessaires à la création d'un tuple vide pour le reste elles ne sont qu'une aide à la lecture. L'utilisation de la virgule est nécessaire dès qu'on veut faire autre chose qu'un tuple vide. Exemple 2 tup1=() # un tuple vide tup2=(3,) # tuple avec un seul élément tup3=(1,4,5,'moto',4.6) # tuple avec cinq élément tup4=1,4,5,'moto',4.6 # même tuple sans parenthèse print(type(tup1)) print(tup3==tup4) # pour accéder au type de l'objet # test si les tuples tup3 et tup4 sont égaux ou non Exercice 1 : Exécuter le script de l'exemple précédent. PROPRIETE 2 Soient i un entier et t un tuple  Pour accéder à l'élément i d'un tuple t on écrit t[i]   Le premier élément d'un tuple est indexé par 0. Le dernier élément de t en Python est accessible avec l'index -1 t[-1]  BONUS(non exigible) Pour afficher aux éléments entre l'index i et l'index j on utilise le slice : t[i:j+1] pour afficher les éléments de deux en deux on pourra écrire : t[i:j+1:2] Exercice 2 On donne le tuple suivant : casse_all = ("chateauB",-10,48.2, False) qui signifie que le lieu considéré est nommé "châteauB", qu'il se situe au point de coordonnées (−10;48.2) et qu'il n'est pas occupé par le joueur B. Écrire les lignes de code qui affichent : 1.

48.2 2.

le dernier élément du tuple 3.

(-10,48.2) 4.

"chateauB" 2 Exercice 3 Chaque joueur peut posséder plusieurs personnages actifs, chacun se situant dans un lieu donné.

Stockons l'ensemble des lieux occupés par les personnages du joueur C au tour 8 dans le tuple C_tour8. Suppososns que C_tour8 = (("antre_orcs",85,36,True),("chateau_C",-105.2,23,True)) Écrire les lignes de code qui affichent : 1.

"chateau_C",-105.2,23,True 2.

"chateau_C" 3.

-105.2,23 Remarquer dans l'exemple précédent qu'un tuple peut en python contenir des éléments de différents types. Certains éléments d'un tuple peuvent eux aussi être des tuples. PROPRIETE 3 Un tuple est un objet immutable : on ne peut pas réaffecter ses éléments, supprimer un élément ou encore en ajouter. Exercice 4 : Tester ces deux lignes de codes : tup=(1,4,5,'moto',4.6) tup[3]='vive le vélo !' PROPRIETE 4 Un tuple est itérable. Cela signifie que l'on peut organiser une itération (boucle for) sur cette structure. Exercice 5 : Tester les deux scripts suivant séparément : tup=("puits_elfique",78,61.3) for elt in tup : # méthode 1, elt vaut tour à tour chaque élément de la séquence en respectant la position dans le tuple print(elt) # print est utilisée à des fins d'observation de code ici : on lit le contenu de elt for i in range(len(tup)): # méthode 2, on parcourt les indices de la séquence print(tup[i]) # on lit le contenu de l'élément du tuple tup en position i 2.3 Les opérations et les méthodes sur les tuples Opérations/méthodes Description Méthodes et opérations communes aux listes et tuples. elt in tup Renvoie True si un élément de tup est égal à elt, False sinon elt not in tup Renvoie True si aucun un élément de tup n'est égal à elt, False sinon len(tup) Renvoie le nombre d'éléments de tup Renvoie True si tup et tup1 sont de même type, ont la même longueur tup == tup1 et ont des éléments égaux deux à deux. 3 T'as la ref ? Opérations/méthodes tup[i] tup[i:j] tup.index(elt) tup.count(elt) tup1+tup2 tup*n Description Renvoie l'élément d'indice i de tup sachant que le premier élément a pour indice 0. Renvoie une partie de l'indice i à j, j étant non inclus Renvoie l'indice de la première apparition de elt dans tup Renvoie le nombre d'apparitions de elt dans tup Renvoie une nouvelle séquence, séquence correspondant à la concaténation de tup1 suivie de tup2. Renvoie une nouvelle séquence composée de la concaténation de tup avec lui-même n fois. Exercice 6 : Voici deux tuples ci-dessous. jours_1=('lundi','mardi','mercredi','jeudi','vendredi') jours_2=('samedi','dimanche') Utiliser les méthodes et les opérations du tableau pour tester les différentes questions : 1.

Tester si samedi est un élément de jours_1. 2.

Donner la longueur de jours_2. 3.

Tester si jours_1 est égal à jours_2. 4.

Donner le deuxième élément de jours_1. 5.

Donner la partie de jours_1 entre le deuxième élément et le quatrième élément. 6.

renvoyer l'indice de dimanche dans jours_2. 7.

Renvoyer le nombre de samedi dans jours_2. 8.

Créer un tuple semaine par concaténation de jours_1 et de jours_2. Exercice 7 (exercice de renforcement) En utilisant un parcours de tuple avec la présence d'un indice, écrire une fonction est_dans(element,tple) qui en argument reçoit un entier element et un tuple d'entiers tple, fonction qui renvoie un booleen indiquant la présence ou non de element dans tple. on testera la fonction au moins avec les scripts suivants :  est_dans(4,(1,2,3,4,5,6)) qui devrait renvoyer True.  est_dans(9,(1,2,3,4,5,6)) qui devrait renvoyer False.  Avec le script suivant, avez-vous tou.te.s le même retour ? import random tple=() for i in range(1000): r=random.randint(1,1000) tple=tple+(r,) # bien analyser le rôle de cette ligne est_dans(400,tple) 4 2.4 Tuple et fonction PROPRIETE 5 En Python, une fonction qui renvoie plusieurs éléments, comme par exemple avec return a,b,c, renvoie un tuple. Exercice 8 def milieu(xA,yA,xB,yB) -> tuple: "Formule qui renvoie les coordonnées du milieu d'un segment" return (xA+xB)/2, (yA+yB)/2 type(milieu(1,3,-1,2)) En utilisant milieu(1,3,-1,2), comment afficher seulement l'abscisse ? L'ordonnée ? Exercice 9 Écrire une fonction triangle_rect(n) qui renvoie un tuple où chaque élément est un tuple de longueur trois, ces tuples sont constitués de trois entiers a, b, c tels que 0 < a ≤ b ≤ c < n et le triangle de cotés a, b et c soit rectangle.

Le tuple renvoyé doit contenir tous les triplets possibles. Par exemple triangle_rect(20) renvoie le tuple ((3, 4, 5), (5, 12, 13), (6, 8, 10), (8, 15, 17), (9, 12, 15)). Coup de pouce Vous pouvez commencer par créer une première fonction est_rectangle qui prend en paramètre un tuple à trois éléments (a,b,c) et renvoie True si le triangle dont plus grand côté a pour longueur c est rectangle mais False sinon. BILAN 1  Une séquence est un ensemble d'éléments indexés par des nombres entiers positifs.  Un p-uplet ou tuple (en anglais) est une séquence immutable indexée à partir de 0.  En python, un tuple est un objet le plus souvent délimité par des parenthèses dont les éléments sont séparés par des virgules.  Un tuple est un objet itérable, c'est-à-dire que l'on peut étudier chaque élément séparément à chaque itération d'une boucle for.  L'opération tuple[index] permet d'obtenir l'élément du tuple tuple en position index.  tuple.index(elt) renvoie l'index de la première apparition de l'élément elt dans le tuple tuple. 5 3.

Le type construit tableau (liste en python) 3.1 Définition Tableau Un tableau est une séquence mutable. type list en Python Une liste en Python est une séquence mutable de longueur variable et indexée à partir de 0. 3.2 Construire les objets list PROPRIETE 6 Une liste est définie à l'aide de crochets. Pour initialiser en mémoire une liste nommée l et vide on écrira : l=[]. PROPRIETE 7 Une liste est un objet mutable.... »

↓↓↓ APERÇU DU DOCUMENT ↓↓↓

Liens utiles