Python Tp 1 Exo 4
Séquences, indiçage et extraction
Les chaînes de caractères sont stockées sous forme de tableaux de caractères. Intéressons-nous de plus près aux opérations sur les tableaux.
Souvenez-vous que l’indice du premier élément est toujours 0. Pour le vérifier essayez ceci:
>>> c2 = ‘abcdefg’ # un tableau de caracteres
>>> c2[0]
>>> c2[1]
>>> c2[−1] # on peut aussi compter par la fin …
>>> c2[−3]
Malheureusement, les chaines ne sont pas modifiables. En revanche on peut en utiliser des parties pour en construire d’autres. Essayez par exemple ce qui suit:
>>> s = ‘spam & eggs’ # A la place, on voudrait : ‘Spam & Eggs’
>>> s[0] = ‘S’
Comme la méthode consistant à remplacer directement une partie de la chaine ne fonctionne pas. Essayons autrement, en fabriquant une nouvelle chaine avec des morceaux de l’ancienne. Entrainons-nous un peu d’abord (expliquez les resultats obtenus):
>>> s2 = “abcdefghijk”
>>> s2[1:3]
>>> s2[1:]
>>> s2[:1]
>>> s2[:]
>>> s2[::2]
>>> s2[3:6]
Vous avez compris? Tres bien alors trouvez la solution pour ecrire 'Spam & Eggs'
a partir de 'spam & eggs'
.
En fait, les chaines de caractères sont l’une des 3 formes de sequence proposées par Python:
- Les chaines: tableaux de caractères, non modifiables
- Les listes: tableaux d’objets quelconques, modifiables
- Les tuples: tableaux d’objets quelconques, non modifiables (mais plus rapides que les listes)
Essayons donc les deux dernières formes:
>>> liste_vide = []
>>> len(liste_vide) # pour verifier
>>> couleurs = [‘bleu’, ‘rouge’, ‘vert’]
>>> couleurs[1] # indicage
>>> couleurs[0:1] # decoupage
>>> couleurs[1] = ‘jaune’ # une liste est modifiable
>>> couleurs[2] = 1.414 # et peut contenir des types differents…
>>> c = [1, 3, couleurs] # … comme des listes par exemple!
>>> a = [0,1,2]
>>> b = [3,4,5]
>>> c = [a,b]
>>> c[0][2]
>>> c[1][0]
>>> c[1][3] # Quel est le probleme ici ?
Passons aux tuples maintenant:
>>> monTuple = (‘bleu’, ‘blanc’, ‘rouge’)
>>> monTuple[0]
>>> monTuple[0] = ‘vert’ # expliquez