Indexation et Découpage
Les chaînes de caractères sont des séquences : chaque caractère possède une position (un indice). Python utilise une indexation commençant à zéro, donc le premier caractère se trouve à l’indice 0. Il est possible d’obtenir un caractère unique grâce à l’indexation et des plages de caractères grâce au slicing.
Indexation
Utiliser des crochets avec une seule position.
123s = "python" print(s[0]) # 'p' (first character) print(s[5]) # 'n' (sixth character)
Les indices négatifs comptent à partir de la fin.
123s = "python" print(s[-1]) # 'n' (last character) print(s[-2]) # 'o' (second from the end)
L’indexation doit cibler une position existante, sinon une IndexError est levée.
12s = "python" print(s[10]) # IndexError: string index out of range
De plus, les chaînes de caractères sont immutables, il est donc possible de lire s[i] mais pas de lui affecter une valeur.
12s = "python" s[0] = 'P' # TypeError: 'str' object does not support item assignment
Découpage
Un découpage utilise start:stop:step et retourne une nouvelle chaîne. stop est exclusif (il n'est pas inclus).
12345s = "python" print(s[1:4]) # 'yth' (indices 1,2,3) print(s[:4]) # 'pyth' (start defaults to 0) print(s[3:]) # 'hon' (stop defaults to len(s)) print(s[::2]) # 'pto' (every 2nd character)
Les découpages sont tolérants : dépasser les bornes ajuste simplement aux limites valides (pas d’erreur).
12s = "python" print(s[0:100]) # 'python'
Indices négatifs et inversion
Possibilité de combiner des indices négatifs dans les tranches, et un step négatif parcourt la chaîne en sens inverse.
123s = "python" print(s[-3:]) # 'hon' (last three) print(s[::-1]) # 'nohtyp' (reverse)
step ne peut pas être 0. Omettre step implique 1. Omettre start ou stop signifie « depuis le début » / « jusqu'à la fin ».
1. Quelle valeur ce code va-t-il afficher ?
2. Quelle valeur ce code va-t-il afficher ?
3. Quelle instruction provoque une erreur pour u = "hello" ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 3.45
Indexation et Découpage
Glissez pour afficher le menu
Les chaînes de caractères sont des séquences : chaque caractère possède une position (un indice). Python utilise une indexation commençant à zéro, donc le premier caractère se trouve à l’indice 0. Il est possible d’obtenir un caractère unique grâce à l’indexation et des plages de caractères grâce au slicing.
Indexation
Utiliser des crochets avec une seule position.
123s = "python" print(s[0]) # 'p' (first character) print(s[5]) # 'n' (sixth character)
Les indices négatifs comptent à partir de la fin.
123s = "python" print(s[-1]) # 'n' (last character) print(s[-2]) # 'o' (second from the end)
L’indexation doit cibler une position existante, sinon une IndexError est levée.
12s = "python" print(s[10]) # IndexError: string index out of range
De plus, les chaînes de caractères sont immutables, il est donc possible de lire s[i] mais pas de lui affecter une valeur.
12s = "python" s[0] = 'P' # TypeError: 'str' object does not support item assignment
Découpage
Un découpage utilise start:stop:step et retourne une nouvelle chaîne. stop est exclusif (il n'est pas inclus).
12345s = "python" print(s[1:4]) # 'yth' (indices 1,2,3) print(s[:4]) # 'pyth' (start defaults to 0) print(s[3:]) # 'hon' (stop defaults to len(s)) print(s[::2]) # 'pto' (every 2nd character)
Les découpages sont tolérants : dépasser les bornes ajuste simplement aux limites valides (pas d’erreur).
12s = "python" print(s[0:100]) # 'python'
Indices négatifs et inversion
Possibilité de combiner des indices négatifs dans les tranches, et un step négatif parcourt la chaîne en sens inverse.
123s = "python" print(s[-3:]) # 'hon' (last three) print(s[::-1]) # 'nohtyp' (reverse)
step ne peut pas être 0. Omettre step implique 1. Omettre start ou stop signifie « depuis le début » / « jusqu'à la fin ».
1. Quelle valeur ce code va-t-il afficher ?
2. Quelle valeur ce code va-t-il afficher ?
3. Quelle instruction provoque une erreur pour u = "hello" ?
Merci pour vos commentaires !