TP5 MP/PC-SI 6 décembre 2013 Avertissement : Le but ici est de faire les exerci
TP5 MP/PC-SI 6 décembre 2013 Avertissement : Le but ici est de faire les exercices, les tableaux sont à remplir avant la séance. Table des matières 1 Outillage chaines et outillage listes 1 2 Les listes 2 2.1 Fonctions utiles pour travailler avec les listes . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.1.1 Manipulation de listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.1.2 Extraction de sous-listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.3 Rappels sur l’affectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.4 Copier une liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Parcourir ou remplir une liste avec une boucle for . . . . . . . . . . . . . . . . . . . . . . 5 3 Les chaînes de caractères 6 3.1 Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2 Littéraux de type chaîne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.3 Fonctions utiles pour travailler avec des chaînes . . . . . . . . . . . . . . . . . . . . . . . . 6 3.4 Autres fonctions concernant les chaînes de caractères . . . . . . . . . . . . . . . . . . . . . 7 3.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1 Outillage chaines et outillage listes On considère la chaîne : »>proust=′Longtemps je me suis couché de bonne heure′ et la liste »> marcel=[′Longtemps′, ′je′, ′me′, ′suis′, ′couché′, ′de′, ′bonne′, ′heure′] 1. Déterminer à l’aide de fonctions Python, la longueur de proust et celle de marcel. 2. (a) On considère la sous chaîne ′on′, écrire un booléen montrant que cette dernière est effectivement dans proust. (b) On considère la liste [′je′, ′me′], tester »>[′je′, ′me′] in marcel »> ′je′ in marcel comment interpréter ces réponses ? ( 1 ) Faire un script python utilisant for et in permettant de répondre exactement à la question précédente. 1. Il est intéressant de savoir si un mot est dans un texte, mais on se fout de savoir si une sous liste est dans une liste il suffit de savoir si les éléments de l’une sont dans l’autre. 1 3. (a) Nous voudrions remplacer dans la liste marcel, ′Longtemps′ par ′Toujours′, comment procéder en Python ? (b) Peut-on adapter ce script pour remplacer dans la chaine proust, ′Longtemps′ par ′Toujours′ ? (c) • On considère le script »>marcel.append(′hélas′) Quést devenue la liste marcel ? • Même question avec : »>marcel.extend([′′′c’est′′′, ′tard′, ′pour′, ′le′, ′dire′]) (d) On considère le script »>proust.replace(′Longtemps′,′Toujours′) Quést devenue la chaine proust ? (e) Comment ajouter ′ hélas′ ( 2) à léxtrémité de la chaîne proust ? Affecter alors proust à la chaîne ainsi obtenue. (f) Comment ajouter ′hélas′ ( 3) dans la liste marcel ? (g) Comparer les méthodes .append() et .extend() à la méthode .replace. Comment agissent- elles sur l’affectation. Voir : http://zero202.free.fr/cs8-pyyh/html/ar01s02.html 2 Les listes http://perso.limsi.fr/pointal/_media/python:cours:tpinfopython_2012-2013_sp2-tp3.pdf 2.1 Fonctions utiles pour travailler avec les listes Les opérateurs, fonctions et méthodes les plus utiles pour les listes sont : len(lst), lst.append(), lst.remove(), lst.pop(), elem in lst, lst.sort() Soit lst une liste quelconque, soit elem un élément : len(lst) renvoie le nombre d’éléments dans lst. lst.append(elem) ajoute l’élément elem à la fin de la liste lst. lst.remove(elem) supprime de la liste lst, la première occurence de l’élément elem (si la liste lst contient plusieurs fois l’élément elem, seul le premier est enlevé). lst.pop() supprime le dernier élément de la liste lst. lst.pop(i) supprime l’élément d’indice i de la liste lst. elem in lst renvoie True si elem est un élément de la liste lst, sinon renvoie False. lst.index(elem) renvoie l’indice de l’élément elem dans la liste lst. lst.sort() modifie la liste lst en la triant par ordre croissant. sorted(lst) crée une copie de la liste lst, triée par ordre croissant (la liste lst nést pas modifiée par cette instruction ; seule sa copie est triée) En tapant help(list) dans l’interpréteur python, on obtient toutes ces fonctions ainsi que beau coup d’autres. 2.1.1 Manipulation de listes Nous allons maintenant apprendre à manipuler les listes. Saisissez dans l’interpréteur python : 2. Attention à léspace dans cette chaine. 3. Attention il n’y a pas déspace dans cette chaine. 2 TP Informatique - Introduction à Python Lycée Montesquieu Instruction à saisir Résultat obtenu + commentaire ou explication maListe=[22,"coucou",33,"z", ’a’,’b’,111,99] maListe len(maListe) ’z’ in maListe maListe[3]=1024 ’z’ in maListe maListe maListe.append(33) maListe.append("hello") maListe maListe.remove(33) 33 in maListe maListe maListe.pop maListe.pop(1) maListe maListe.index(’a’) maListe.index(111) maListe.sort() maListe.remove(’a’) maListe.remove(’b’) maListe maListe.sort() maListe uneListe=[’z’,’a’,’d’,’aa’] uneListe.sort() uneListe 2.1.2 Extraction de sous-listes On peut extraire une sous-liste d’une liste en indiquant entre crochets les indices des éléments que l’on veut extraire : Extraction de sous-listes : Soit lst une liste quelconque. lst[p] renvoie l’élément d’indice p de lst. lst[p:n] renvoie une nouvelle liste constituée des éléments de lst d’indice p inclus à n exclu. lst[p:n:pas] renvoie une nouvelle liste constituée des éléments de lst d’indice p inclus à n exclu, tous les pas. lst[:] renvoie une nouvelle liste constituée de tous les éléments de lst. lst[p:] renvoie une nouvelle liste constituée de tous les éléments de lst à partir de l’élément d’indice p inclus. lst[:n] renvoie une nouvelle liste constituée de tous les éléments de lst depuis le premier jusqu’à l’élément d’indice n exclu. lst[::pas] renvoie une nouvelle liste constituée des éléments de lst, tous les pas. Décrire les instructions suivantes et si vous doutez exécutez-les : TP Informatique - Introduction à Python Lycée Montesquieu 3 Instruction à taper Explication maListe maListe[0:4:2] maListe[0:3] maListe[:] maListe[::2] maListe[::-1] maListe[0] maListe[1] maListe[4] maListe[5] maListe[-1] maListe[-2] maListe[-5] maListe[-6] maListe[:3] maListe[2:] maListe[-1]="b" maListe 2.1.3 Rappels sur l’affectation L’affectation en Python est l’association entre un nom de variable et une valeur. Lorsqu’on affecte une variable à une autre variable, on crée simplement un autre nom qui partage la même valeur en mémoire - on peut tester qu’il s’agit effectivement de la même valeur avec l’opérateur is qui compare l’identité de deux valeurs. Décrire les instructions suivantes et si vous doutez exécutez-les : Instruction à taper Explication a = 14000 (1) 2 b = a b b == a b is a c = 14000 c==a c is a Cela ne pose pas de problème avec les types int, float, bool et str car les valeurs elle-mêmes ne sont pas modifiables 4 (pour changer la valeur associée à la variable il faut réaliser une nouvelle affectation). De la même façon, l’affectation d’une variable à une autre variable d’une valeur de type list, ne crée pas une nouvelle liste qui soit une copie de la première, mais met simplement en place un nouveau nom qui référence la même liste en mémoire. Or il est possible de modifier directement cette valeur liste 5 en utilisant les opérateurs et méthodes vus précédemment. Si deux variables référencent la même liste, les modifications réalisées en utilisant une variable seront visibles aussi avec l’autre variable. 2.1.4 Copier une liste Pour créer une copie d’une liste en étant sûr que les modifications ne toucheront pas l’originale, il faut utiliser un des moyens présentés ci-après. Tapez dans l’interpréteur python : 1. On utilise une valeur entière élevée pour éviter un cas particulier d’optimisation réalisé pour les valeurs de -4 à 256, on aurait aussi pu utiliser une valeur flottante. 4. En Python en dit que ces types int, float, bool, str sont "immutables" 5. En Python on dit que le type list est "mutable". 4 TP Informatique - Introduction à Python Lycée Montesquieu Instruction à uploads/Finance/ tp-5-list-esc-haines 1 .pdf
Documents similaires
-
20
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 21, 2021
- Catégorie Business / Finance
- Langue French
- Taille du fichier 0.3157MB