3.1 Retour sur les chaînes de caractères
Objectifs d'apprentissage
À la fin de cette section, vous devriez être capable de :
- Extraire un caractère spécifique d'une chaîne de caractères à l'aide d'un indice.
- Utiliser des séquences d'échappement pour représenter des caractères spéciaux.
Indices
Une chaîne de caractères est une séquence comportant zéro, un ou plusieurs caractères. Chaque caractère possède un indice qui indique sa position. Les indices sont numérotés de gauche à droite, en commençant par 0. Les indices sont également numérotés de droite à gauche, en commençant par -1.
Concepts en pratique
Indices des chaînes
Unicode
Python utilise Unicode, la norme internationale pour représenter du texte sur les ordinateurs. Unicode définit un numéro unique, appelé point de code (code point), pour chaque caractère possible. Ex. : "P" a pour point de code 80, et "!" a pour point de code 33.
La fonction intégrée ord() convertit un caractère en un point de code. Ex. : ord("P") renvoie l'entier 80. De même, la fonction intégrée chr() convertit un point de code en un caractère. Ex. : chr(33) renvoie la chaîne de caractères "!".
Unicode est une extension d'ASCII (American Standard Code for Information Interchange). À l'origine, ASCII ne définissait que 128 points de code, ce qui suffisait pour prendre en charge la langue anglaise. Unicode définit plus d'un million de points de code et prend en charge la plupart des langues écrites du monde.
32 (space)
33 !
34 "
35 #
36 $
37 %
38 &
39 '
40 (
41 )
42 *
43 +
44 ,
45 -
46 .
47 /
48 0
49 1
50 2
51 3
52 4
53 5
54 6
55 7
56 8
57 9
58 :
59 ;
60 <
61 =
62 >
63 ? |
64 @
65 A
66 B
67 C
68 D
69 E
70 F
71 G
72 H
73 I
74 J
75 K
76 L
77 M
78 N
79 O
80 P
81 Q
82 R
83 S
84 T
85 U
86 V
87 W
88 X
89 Y
90 Z
91 [
92 \
93 ]
94 ^
95 _ |
96 `
97 a
98 b
99 c
100 d
101 e
102 f
103 g
104 h
105 i
106 j
107 k
108 l
109 m
110 n
111 o
112 p
113 q
114 r
115 s
116 t
117 u
118 v
119 w
120 x
121 y
122 z
123 {
124 |
125 }
126 ~
127 (delete) |
Concepts en pratique
ord() et chr()
Caractères spéciaux
Une séquence d'échappement (escape sequence) utilise une barre oblique inverse (\) pour représenter un caractère spécial au sein d'une chaîne de caractères.
| Séquence d'échappement | Signification | Exemple | Sortie à l'écran |
|---|---|---|---|
\n |
Un caractère de retour à la ligne qui indique la fin d'une ligne de texte. | print("Escape\nsequence!") |
|
\t |
Un caractère de tabulation ; utile pour indenter des paragraphes ou aligner du texte sur plusieurs lignes. | print("Escape\tsequence!") |
Escape sequence! |
\' |
Une apostrophe (guillemet simple) ; une alternative à l'encadrement de la chaîne par des guillemets doubles. | print('I\'ll try my best!') |
I'll try my best |
\" |
Un guillemet double ; une alternative à l'encadrement de la chaîne par des guillemets simples. | print("I heard you said \"Yes\"") |
I heard you said "Yes" |
\\ |
Un caractère de barre oblique inverse. | print("This prints a \\") |
This prints a \ |
Concepts en pratique
Tabulations et retours à la ligne
À vous d'essayer
Citation de Hopper
Grace Hopper (1906–1992) était une informaticienne de renom (et contre-amirale dans l'US Navy !) qui a eu l'idée de concevoir des langages de programmation indépendants des machines. Elle a imaginé un langage de programmation fondé sur l'anglais et a apporté de nombreuses contributions qui ont ouvert la voie aux langages de programmation modernes, notamment Python.
Écrivez un programme qui affiche le texte suivant, en incluant les guillemets. Votre programme ne doit comporter aucun guillemet simple (') dans le code. La dernière ligne doit être indentée avec un caractère de tabulation.
"To me programming is more than an important practical art.
It is also a gigantic undertaking in the foundations of knowledge."
-- Grace Hopper
À vous d'essayer
Chiffre de César
Sous l'Empire romain, Jules César (100–44 av. J.-C.) utilisait une technique simple pour chiffrer des messages privés. Chaque lettre du message était remplacée par la lettre située trois rangs plus loin dans l'alphabet. Ex. : si le message était CAT, le C devenait F, le A devenait D et le T devenait W, donnant ainsi le message FDW. Cette technique est appelée chiffrement par décalage, car chaque lettre est décalée d'un certain nombre de rangs. Dans le cas de César, le décalage était de trois, mais d'autres valeurs (autres que 0) fonctionneraient également.
Écrivez un programme qui invite l'utilisateur à saisir les deux valeurs suivantes (exemple de saisie en gras) :
Enter a 3-letter word: CAT
Shift by how many letters? 3
Le programme doit ensuite décaler chaque lettre du mot du nombre souhaité. D'après l'exemple ci-dessus, la sortie serait :
The secret message is: FDW
Indication : Utilisez la fonction ord() pour convertir chaque lettre en un entier, ajoutez la valeur du décalage à chaque entier, utilisez la fonction chr() pour convertir chaque entier en un caractère, et concaténez les caractères résultants.