Il est impératif de sauvegarder régulièrement le code en le collant dans un fichier texte (Notepad++) ou dans l'éditeur de pyzo.
Chaînes et listes sont des séquences en python : des collections d'objets dans un ordre précis.
Il existe une différence importante entre les chaînes et les listes : il n'est pas possible de modifier un caractère d'une
chaîne tandis qu'il est fréquent de modifier un élément d'une liste. On dit qu'une liste est mutable et qu'une chaîne
est immutable.
Chaîne s | Liste L | |
Séquence vide | s = '' |
L =[] |
Longueur | len(s) |
len(L) |
Définition par extension | s = 'abcd' |
L = [3, True, 'b', -1] |
Définition par compréhension | Utiliser une boucle | L = [i**2 for i in range(10)] |
Accès à l'élément d'index (ou indice) i ATTENTION : la numérotation commence à 0 |
s[i] |
L[i] |
Ajout en fin de séquence | s = s + 'efgh' ou s += 'efgh' |
L = L + ['z', 3.14, 0] ou L += ['z', 3.14, 0] ou L.append(-47) (un seul élément ; opération rapide) |
Ajout en début de séquence | s = 'zyx' + s |
L = [5, False] + L |
Remplacement d'un élément | IMPOSSIBLE | L[i] = 99 |
Slicing d = index de début, f = index de fin (exclu), p = pas (facultatif) |
s[d:f:p] s[d:] s[:f] s[::p]
| L[d:f:p] L[d:] L[:f] s[::p]
|
|
|
Construire par compréhension les listes suivantes :
- la liste L1 des entiers de 0 à 100 ;
- la liste L2 des cubes des entiers de 0 à 100 (inclus) ;
- la liste L3 des cubes des entiers de 0 à 100 (inclus) seulement si le résultat est pair (il est possible
d'ajouter un test dans la définition par compréhension : [... for ... if ...]).
Les cellules de code se comportent comme un éditeur python et non comme le shell : utiliser l'instruction print() pour visualiser les résultats.
A partir de la liste L1 précédente, extraire les sous-listes suivantes.
- L1a et L1b constituées respectivement des entiers de 0 à 50 et des entiers de 51 à 100.
- Quel est le résultat de L1 == L1a + L1b ?
- L1p et L1i constituées respectivement des nombres pairs et impairs de L1.
- Quel est le résultat de L1 == L1p + L1i ? Expliquer.
- L1_5 constituée des multiples de 5 dans L1.
- L1_3070 constituée de tous les entiers n tels que \(30 \leq n \leq 70\).
- L1_3070_5 constituée de tous les entiers n multiples de 5 tels que \(30 \leq n \leq 70\).
A chaque caractère c est associé un entier : la fonction ord(c) donne cet entier.
Réciproquement, la fonction chr(n) permet de connaître le caractère associé à un entier n.
1/ Construire par compréhension les chaînes sm et sM constituées respectivement des lettres minuscules et des lettres majuscules (non accentuées).
2/ Construire la chaîne smM de la forme : 'aAbB...zZ'.
3/ Construire par extension la chaîne sv des voyelles non accentuées.
A l'aide de sv et sm, construire par compréhension la liste sc des consonnes (minuscules).
1/ Reconstituer les chaînes sm et sM (en leur donnant d'autres noms) à partir de smM.