Texte (string)¶
Un texte est une chaine de caractères.
Le texte standard (ASCII code) consiste en
26 lettres minuscules (
a-z
)26 lettres majuscules (
A-Z
)10 chiffres (
0-9
)
ainsi que de caractères spéciaux:
ponctuation (
.,;:?!
)délimiteurs (
(){}[]<>"'
)symboles (
$%&
)opérateurs (
+-*/
)
Concepts¶
Les concepts présentés dans ce chapitre sont
création de string
s = 'hello'
délimitation par un guillemet simple
'
ou double"
caractère d’échappement
\
Les indexages
index simple
s[i]
pour accéder à un seul caractèretranche
s[m:n]
pour accéder à une sous-chainetranche
s[::i]
avec incrément (2) et chaine inversée (-1)
Les fonctions
len()
pour retourner la longueurstr()
pour transformer nombre en chaineint()
pour transformer chaine en nombre
Les opérateurs
+
de concaténation*
de répétition
Délimitation¶
Une chaine de caractères est délimitée par des guillemets anglais simples '
.
'hello'
'hello'
ou des guillemets anglais doubles "
.
Attention: il ne faut pas confondre le guillemet double "
(1 caractère) avec deux guillemets simples ''
(2 caractères).
"world"
'world'
Si le texte contient déjà un guillemet simple (apostrophe), on entoure le texte avec des guillemets doubles.
"c'est bien"
"c'est bien"
Si une chaine contient les deux sortes de guillemets, on les précède avec une barre oblique inverse \
(backslash) qui est le caractère d’échappement.
s = 'c\'est "très" bien'
print(s)
c'est "très" bien
Longueur¶
Une chaine s’appelle string en anglais.
C’est pour cela que nous utilisons souvent s
comme variable pour désigner une chaine.
Par exemple:
s = 'Python'
La fonction len()
retourne la longueur de la chaine.
len(s)
6
Index¶
Chaque caractère d’une chaine peut être accédé par son index (sa position).
Un index est un nombre entier, commençant avec 0 pour le premier caractère.
Voici la première et deuxième lettre du texte s
s[0], s[1]
('P', 'y')
Un index négatif permet d’accéder à une chaine depuis sa fin.
Voici la dernière et avant-dernière lettre du string s
.
s[-1], s[-2]
('n', 'o')
Tranche¶
Une tranche est un sous-ensemble d’une chaine indiqué par indice de la forme [m:n]
.
Elle retourne la sous-chaine avec les caractères qui ont un indice m à n-1.
Voici la sous-chaine avec les indices 0, 1, et 2.
s[:3]
'Pyt'
Voici la sous-chaine avec les indices 2 et 3.
s[2:4]
'th'
Voici la sous-chaine avec les indices 3, 4 et 5.
s[3:]
'hon'
Un troisième paramètre peut donner l”incrément.
Voici la chaine avec les lettres 0, 2, et 4 (à cause de l’incrément 2).
s[::2]
'Pto'
Un incrément négatif (-1) inverse la chaine.
s[::-1]
'nohtyP'
Une chaine est immuable¶
Contrairement à une liste, une chaine est immuable.
Essayer de réaffecter une lettre, donne une erreur.
s[0] = 'J'
TypeError: 'str' object does not support item assignment
Par contre c’est possible de créer une nouvelle chaine.
Nous pouvons concaténer une lettre et une tranche d’une chaine existante, pour en former une nouvelle chaine.
'J' + s[1:]
'Jython'
Opérateur de concaténation¶
L’opérateur +
permet de concaténer (enchaîner) deux textes.
a = 'hello'
b = 'world'
La concaténation donne
a + b
'helloworld'
Nous pouvons ajouter une espace au milieu.
a + ' ' + b
'hello world'
Nous pouvons ajouter un retour à la ligne (\n
) au milieu.
print(a + '\n' + b)
hello
world
Opérateur de répétition¶
L’opérateur *
permet de répéter un texte.
'hi' * 20
'hihihihihihihihihihihihihihihihihihihihi'
a * 5
'hellohellohellohellohello'
Maintenant, l’opérateur *
signifie la multiplication
12 * 12
144
Nous pouvons utiliser des parenthèses pour fixer la priorité.
(a + ' ') * 5
'hello hello hello hello hello '
Caractère d’échappement¶
En informatique et en télécommunication, un caractère d’échappement est un caractère qui déclenche une interprétation alternative du ou des caractères qui le suivent. En Python nous avons la barre oblique inversée comme caractère d’échappement.
\n
pour un retour à la ligne (=newline)\t
pour un tabulateur\\
pour échapper le caractère d’échappement.\'
pour un guillemet simple\"
pour un guillemet double
Le tabulateur aligne un texte à des multiples de 8.
print('hello\tworld')
print('1\t2')
hello world
1 2
Le \n
(newline) insère un retour à la ligne.
print('hello\nworld')
hello
world
La première et la troisième barre oblique sont échappées.
print('tab=\\t \tnewline=\\n\n1\t2')
tab=\t newline=\n
1 2
Unicode¶
Les chaines de caractères utilisent Unicode. Le format Unicode permet de créer des caractères et alphabets de presque toutes les langues du monde.
Voici une chaine en japonais avec une sous-tranche.
jap = 'これは日本語です' # kore wa nihongo desu
jap[3:6] # nihongo
'日本語'
Voici une chaine qui utilise des émojis.
emoji = '🍏🍎🍐🍊🍋🍌🍉🍇🍓'
Voici deux émojis répétés 10 fois.
'🍎🍏' * 10
'🍎🍏🍎🍏🍎🍏🍎🍏🍎🍏🍎🍏🍎🍏🍎🍏🍎🍏🍎🍏'
Type d’un objet¶
La fonction type()
retourne le type d’un objet.
Le type d’une chaine est str
(=string).
type('abc')
str
Voici trois autres types:
int
(entier)float
(virgule flottantebool
(booléen)
type(1), type(1.2), type(True)
(int, float, bool)
Conversion¶
Un nombre peut être présenté comme chaine.
L’opérateur *
signifie alors la répétition.
'12' * 12
'121212121212121212121212'
Maintenant, l’opérateur *
signifie la multiplication
12 * 12
144
La fonction int()
transforme une chaine (qui représente un entier) en entier.
int('12')
12
L’opérateur inverse str()
transforme un nombre en string.
str(123)
'123'