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.