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, ainsi 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
Utilisation de 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, ce qui signifie que l’on peut lire s[i] mais pas y 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 limites ajuste simplement aux bornes valides (aucune 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
Génial!
Completion taux amélioré à 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, ainsi 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
Utilisation de 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, ce qui signifie que l’on peut lire s[i] mais pas y 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 limites ajuste simplement aux bornes valides (aucune 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 !