Convertir le type d’une variable (transtypage)
Créez un compte gratuit pour suivre votre avancement et reprendre où vous avez laissé.
Créer un compteTranstypage
Transtyper une valeur, c'est la convertir d'un type vers un autre. On utilise les fonctions int(), float() et str().
Méthode
Pour transtyper une valeur en Python :
- Identifier le type de départ et le type d'arrivée souhaité.
- Utiliser la fonction adaptée :
- int(x) : convertit en entier (tronque la partie décimale, ne l'arrondit pas).
- float(x) : convertit en décimal.
- str(x) : convertit en chaîne de caractères.
- Ranger le résultat dans une variable ou l'utiliser directement dans un calcul.
Convertir entre nombres et chaînes
On considère les instructions suivantes :
a = 3.9
b = int(a)
c = str(a)
d = float("12.5")
Étape 1 : int(3.9) tronque la partie décimale et donne 3 (et non 4). La variable b vaut donc 3 (type int).
Étape 2 : str(3.9) transforme le nombre en la chaîne « 3.9 ». La variable c vaut « 3.9 » (type str).
Étape 3 : float("12.5") transforme la chaîne « 12.5 » en le décimal 12.5. La variable d vaut 12.5 (type float).
Transtyper une saisie utilisateur
On veut écrire un programme qui demande un nombre entier à l'utilisateur et affiche son double :
texte = input("Entrez un entier : ")
n = int(texte)
print("Le double vaut", 2 * n)
Étape 1 : input renvoie la valeur saisie au format str. Si l'utilisateur tape 7, la variable texte contient la chaîne « 7 ».
Étape 2 : int(texte) convertit la chaîne « 7 » en l'entier 7. La variable n est alors de type int.
Étape 3 : On peut calculer 2 * n, qui vaut 14, et l'afficher.
On écrit souvent cette conversion en une seule ligne :
n = int(input("Entrez un entier : "))
Attention
- int("3.5") provoque une erreur : on ne peut pas transtyper directement une chaîne décimale en entier. Il faut passer par int(float("3.5")), qui vaut 3.
- int tronque (ne garde que la partie entière) et ne fait pas d'arrondi : int(2.9) donne 2, pas 3. Pour arrondir, utiliser round.
- Additionner une chaîne et un nombre provoque une erreur : « 3 » + 4 ne fonctionne pas. Il faut d'abord convertir.