Représentation des données - Types construits
Les données constituent la matière première de toute activité numérique.
Comme nous l'avons vu, une donnée peut être représentée par :
- Un nombre ( entier ou réel )
- Une chaîne de caractères
- Un booléen ( Vrai ou Faux )
Ces représentations sont dites de types simples.
Un entier -->; type int (Integer)
Un réel -->; type float (Float)
Un booléen -->; type bool (boolean)
Une chaîne de caractère -->; type str (String)
Le type str est aussi de type simple mais il est particulier :
Chaque caractère d'une chaîne a un indice, et ce système d'indice permet d’accéder à une partie de la chaîne.
Revoir si nécessaire : Les chaînes de caractères
Avec ces types nous pouvons définir des variables qui représentent chacune une donnée.
Mais si le nombre de données est important ou si nous avons besoin d'en regrouper certaines (comme les coordonnées d'un point)
Nous aurons alors besoin de définir des variables dont les valeurs sont des ensembles de valeurs.
Nous allons voir trois types d'objets : Le type tuple (n-uplet) , le type list (liste) et le type dict (dictionnaire)
Pour faire simple, un objet peut être simple ou construit (composé de plusieurs objets).
Un exemple :
Un objet 'train' peut être composé de deux objets 'trains' (accrochés entre eux) et chacun d'entre eux est composé d'une locomotive, de wagons,etc.
Chaque wagon étant composé d'objets...
1 - Un premier modèle : le n-uplet
On retrouve les propriétés d'une chaîne de caractères :
Les éléments sont ordonnés, chacun avec un indice
On ne peut pas modifier les éléments par affectation.
De plus les éléments peuvent être de tout type.
L'objet ainsi défini correspond au type tuple.
Un tuple se définit avec des parenthèses:
mon_tuple = (1, 2, 3, 'bonjour')
les éléments sont séparés par une virgule.
Les tuples en Python
Comme déjà dit ci-dessus, un tuple est une séquence. Voici un exemple très simple :
mon_tuple = (5, 8, 6, 9)
Dans le code ci-dessus, le nom mon_tuple est associé à un tuple (l'association entre un nom et un tuple est aussi une variable), ce tuple est constitué des entiers 5, 8, 6 et 9. Comme indiqué dans la définition, chaque élément du tuple est indicé (il possède un indice):
le premier élément du tuple (l'entier 5) possède l'indice 0
le deuxième élément du tuple (l'entier 8) possède l'indice 1
le troisième élément du tuple (l'entier 6) possède l'indice 2
le quatrième élément du tuple (l'entier 9) possède l'indice 3
Comment accéder à l'élément d'indice i dans un tuple ?
Simplement en utilisant la "notation entre crochets" :
mon_tuple = (5, 8, 6, 9)
a = mon_tuple[2]
2 - Un second modèle : la liste ou tableau
Les éléments sont ordonnés, chacun avec un indice
On autorise la modification d'un élément
Les éléments peuvent être de tout type.
Ce qui permet davantage de souplesse dans l'utilisation...
L'objet ainsi défini correspond au type list.
Cours et Activites
Découverte des listes (tableau)Travaux Dirigés (TD)
Exercices de TD sur les listesRécapitulatif - Listes - Tuples
Devoir Maison évalué à rendre
Devoir Maison évalué à rendre3 - Le Dictionnaire
Les éléments sont indexés par des 'clés'
On autorise la modification d'un élément
Les dictionnaires sont très utiles pour manipuler des données du type : félin : (lion, jaguar, tigre,..), reptile : (alligator, lézard, ...) etc.
L'objet ainsi défini correspond au type dict.
Un dictionaire se définit avec des accolades:
mon_dico = {cle1 : val1 , cle2 : val2 , cle3 : val3}
les éléments sont séparés par une virgule.
Devoir Maison
Le code MorseExercices Récapitulatifs sur les tuples, listes et dictionnaires
Quel modèle choisir ?
Il n'y a pas de règles générales qui imposent tel ou tel modèle... On peut :
- Choisir un tuple, car les éléments qu'il contient n'ont pas vocation à être modifiés.
- Choisir une liste, pour la souplesse de son utilisation.
- Choisir un dictionnaire car c'est la meilleure représentation des données à traiter.
De plus, chacun de ces modèles peut contenir des éléments d'un autre modèle...
Dans tous les cas le meilleur modèle est celui qui est le plus adapté au problème traité.
Activité publiée le 11 11 2021
Dernière modification : 21 12 2023
Auteurs : ljm et modifié par Andjekel