2.4. Conversion de type¶
Il est parfois utile de pouvoir convertir le type d’une valeur. Considérons l’exemple d’Alice qui a 18 ans et dont on souhaite afficher l’âge dans la console.
>>> print("Alice a 18 ans")
Alice a 18 ans
Malheureusement, l’âge d’Alice change chaque année.
On doit donc trouver un moyen de modifier son âge.
Pour ce faire, on utilisera la variable age
qui pourra être mise à jour par le programme.
Dans l’exemple ci-dessous, nous allons essayer de compléter la phrase "Alice a ... ans"
.
>>> age = 18
>>> print("Alice a " + age + " ans")
Traceback (most recent call last):
File "<input>", line...
TypeError: can only concatenate str (not "int") to str
Puisque l’âge d’Alice est un entier, il est impossible de le combiner avec une chaîne de caractères, comme nous l’indique le message d’erreur.
La raison est que l’opérateur +
n’a pas la même signification pour les entiers et pour les chaînes de caractères.
Entre deux entiers il correspond à une addition, alors qu’entre deux chaînes il sert à la concaténation.
C’est pourquoi il nous faut convertir la variable age
en chaîne de caractères au moyen de la fonction str()
.
>>> print("Alice a " + str(age) + " ans")
Alice a 18 ans
Note
N’oubliez pas d’ajouter un espace après "a"
et avant "ans"
, sinon vous obtiendrez "Alice a18ans"
.
Voyons à présent quelques exemples de conversion.
>>> x = 5
>>> float(x)
5.0
>>> i = 5 / 2
>>> i
2.5
>>> int(i)
2
>>> y = 4.56
>>> str(y)
'4.56'
Notez bien la différence entre 4.56
qui est de type float
(nombre décimal) et possède donc les propriétés des valeurs numériques (addition, soustraction, etc.), et "4.56"
qui est de type str
(chaîne de caractères) et aura donc les fonctionnalités associées (concaténation, etc.).
>>> a = 9
>>> b = 5
>>> a + b
14
>>> a = "9"
>>> b = "5"
>>> a + b
'95'
Note
La commande help()
fonctionne aussi avec les types de données ! Essayez par exemple help(int)
.