Leçons du module (2/4)
Slicing et indexation
En Python, les chaînes sont des séquences de caractères : vous pouvez accéder
à des caractères individuels par index et extraire des sous-chaînes avec la syntaxe
de tranche [start:stop:step] — exactement comme pour les listes.
Index positifs et négatifs
s = "Python"
# 0123456
# -6-5-4-3-2-1
s[0] # 'P'
s[5] # 'n'
s[-1] # 'n' (ultimo)
s[-2] # 'o' (penultimo)L'accès hors limites lève un IndexError.
Tranchage (Slicing) [start:stop:step]
s = "Python"
s[0:3] # 'Pyt' indici 0,1,2 (stop ESCLUSO)
s[2:] # 'thon' dal 2 alla fine
s[:3] # 'Pyt' dall'inizio fino al 3 (escluso)
s[:] # 'Python' copia completa
s[-3:] # 'hon' ultimi 3
s[:-2] # 'Pyth' tutto tranne gli ultimi 2Contrairement à l'indexation, le tranchage ne lève PAS d'erreur si les index sont hors limites : il extrait ce qu'il peut.
Le troisième argument : step
s = "Python"
s[::2] # 'Pto' salta uno sì uno no
s[1::2] # 'yhn' dispari
s[::-1] # 'nohtyP' INVERSIONE (idiom famoso)s[::-1] est le moyen idiomatique d'inverser une chaîne.
Longueur et inclusion
len("Python") # 6
"th" in "Python" # True
"java" in "Python" # FalseIndex négatifs et pas (step) dans le tranchage
La syntaxe complète du tranchage est s[start:stop:step]. Si vous omettez start et stop mais définissez un pas step négatif de -1 (s[::-1]), vous inversez la chaîne. L'index négatif -1 représente toujours le dernier caractère de la chaîne, -2 l'avant-dernier, etc.
À vous de jouer
Étant donné `word = 'PROGRAMMAZIONE'`, obtenez son inverse dans `reversed_word`. Évaluez `reversed_word`.
Afficher l'indice
word[::-1]
Solution disponible après 3 tentatives
Exercice de révision
Étant donné `email = 'ada@example.com'`, extrayez le domaine (tout après '@') dans `domain` à l'aide du tranchage après avoir trouvé l'index avec .find. Évaluez `domain`.
Afficher l'indice
email[email.find('@') + 1:]
Solution disponible après 3 tentatives
Défi supplémentaire
Étant donné la chaîne `word = "pythonista"`, utilisez le tranchage pour extraire les 3 premiers caractères et les 3 derniers caractères, et concaténez-les dans une nouvelle chaîne `short_word`. Enfin, évaluez `short_word` (elle doit donner `'pytsta'`).
Afficher l'indice
Les 3 premiers caractères sont word[:3], les 3 derniers sont word[-3:]. Concaténez les deux tranches.
Solution disponible après 3 tentatives