Tuto Python : conversion de type forcée (casting)

Table des matières 

  1. Introduction
  2. Convertir les types de nombres

2.1. Conversion des entiers en nombres floats

2.2. Conversion des floats en nombres entiers

2.3. Conversion des numéros dans la division

  1. Conversion avec les chaînes de caractères

3.1. Conversion des nombres en chaînes de caractères

3.2. Conversion des chaînes de caractères en nombres

  1. Conversion en Tuples et Listes

4.1. Conversion en tuples

4.2. Conversion en listes

  1. Exercices
  2. Correction des exercices
  3. Conclusion

1. Introduction

En langage Python, on utilise les types de données pour classer un type particulier de données, en déterminant les différentes valeurs que nous pouvons affecter. Par ailleurs, en programmation, il est souvent utile de convertir les valeurs entre les différents types de données dans le but de les manipuler d'une façon différente pour obtenir des résultats exacts. À titre d'exemple, il est possible que nous ayons besoin d'une chaîne de données numériques (int, float...) avec des chaînes de caractères, ou de définir des nombres en décimales qui ont été initialisés comme des valeurs de type entier.

Ce tutoriel vous aidera à manipuler la conversion des nombres, des chaînes des caractères, de tuples et de listes, et vous donnera des exemples pour vous faire connaître les différents cas d'utilisation.

2. Convertir les types de nombres

En Python, il existe deux types de données numériques : les nombres entiers et les nombres à virgule flottante ou float. Il arrive que vous travaillez sur le code de quelqu'un d'autre et que vous devez convertir un nombre entier en un nombre flottant ou vice versa, ou que vous trouvez que vous avez utilisé un nombre entier alors que vous avez uniquement besoin d'un nombre float. Python a des méthodes intégrées pour vous permettront de convertir facilement des entiers en floats et des floats en entiers.

2.1. Conversion des entiers en nombres floats 

La fonction float () de la méthode Python convertit des entiers en floats. Pour utiliser cette méthode, il faut insérer un nombre entier entre les parenthèses :

Exemple 1:

Syntaxe:

float(121)
n=232
float(n)
x=float(int(input(“donner un nombre)))
x

Résultat d’exécution :

2.2. Conversion des floats en nombres entiers

 Python a également une fonction intégrée pour la conversion des floats en entiers : int (). La méthode int () a le même fonctionnement que la méthode float (), vous pouvez insérer un nombre float entre parenthèses pour le convertir en int :

Exemple 2 :

Syntaxe: 

int(12.1)
n=2.32
int(n)
x=int(float(input(“donner un nombre)))
x

Résultat d’exécution :

Lors de la conversion des nombres float en nombres entiers avec la fonction int (), Python enlève la partie décimale et les nombres restants d'un float pour créer un nombre entier. Même si l'on peut avoir besoin d'arrondir 1,8 à 2, Python ne le fera pas avec la méthode int ().

2.3. Conversion des numéros dans la division 

En Python 3, les quotients des divisions sont convertis d'entiers en float lors de la division, bien qu'ils ne se trouvent pas en Python 2. C'est-à-dire quand vous divisez 7 par 3, en Python 3, vous obtenez un float pour un résultat (2,33333) :

Exemple 3 :

Syntaxe:

A=7/3
Print(A)

Résultat d’exécution :

3. Conversion avec les chaînes de caractères :

Une chaîne de caractères est une succession d'un ou plusieurs caractères (lettres, chiffres, symboles). Les chaînes de caractères sont un autre type de données utilisées dans les différents programmes en informatique, et il peut être nécessaire de convertir les chaînes de caractères en Int ou float surtout si l'on considère les données obtenues par les utilisateurs.

3.1. Conversion des nombres en chaînes de caractères :

On peut convertir des nombres (int, float...) en chaînes de caractères en utilisant la fonction str (). Nous passerons un nombre ou une variable entre les parenthèses de la fonction, et cette valeur numérique est ensuite convertie en une valeur de type chaîne de caractères. Examinons d'abord la conversion des nombres en entiers. Afin de convertir le nombre entier 24 en une valeur de chaîne de caractères, vous devez passer 24 dans la fonction str () :

Exemple 4 :

Syntaxe:

str(24)
n=input("donner un nombre ")
print(str(n))

Résultat d’exécution :

Les guillemets autour du nombre 12 indiquent que le nombre n'est plus un int mais une chaîne de caractères. Les variables nous aident à identifier à quel point il est facile de convertir des valeurs entières ou floats en chaînes de caractères. Par exemple, si nous voulons suivre l'évolution de la programmation courante d'un utilisateur et à insérer le nombre de lignes de son code à la fois. Nous voulons montrer ce retour d'information à l'utilisateur et nous allons afficher les valeurs des chaînes et des nombres Int/floats en même temps.

Exemple 5 :

Syntaxe:

user = "ayoub"
lines = 24
print("Félicitations, " + user + "! Vous venez d'écrire " + str(lines) + " lignes de code.")

Résultat d’exécution :

Si nous souhaitons convertir un float en chaîne de caractères plutôt qu'un entier en chaîne de caractères, nous suivons les mêmes étapes et le même format. Quand nous passons un float dans la fonction str (), une valeur de chaîne du float sera renvoyée. Nous pouvons utiliser soit la valeur du float elle-même, ou une variable :

Exemple 6 :

Syntaxe:

print(str(4.034))
f = 54.53
print( str( f ) )
f = 109.23
print("ayoub a " + str(f) + " points.")

Résultat d’exécution :

Exemple 7 :

Syntaxe:

numerical_value = input("Enter a number")
numerical_value
numerical_value = int(input("Enter a number"))
numerical_value

Résultat d’exécution :

L'utilisateur saisit une valeur de 434235 qui est attribuée à la variable numerical_value et cette valeur est traitée comme un type de chaîne de caractères. Pour attribuer une valeur entière à la variable, vous devez inclure la fonction input () dans la fonction Int () qui convertit le type de la chaîne de caractères d'entrée à un nombre entier de type. Une conversion de chaîne en entier n'est possible que lorsque la valeur de la chaîne est intrinsèquement un nombre (comme "1") et non un caractère.

3.2. Conversion des chaînes de caractères en nombres :

Les chaînes de caractères peuvent être converties en nombres en utilisant les fonctions Int() et float(). Si votre chaîne n'a pas de chiffres décimaux, vous voudrez très souvent la convertir en un nombre entier en utilisant la fonction int(). Prenons l'exemple d'un utilisateur qui garde une trace des dizaines de lignes de code écrites chaque jour. Nous pouvons vouloir gérer ces valeurs avec des maths pour fournir un retour plus intéressant pour l'utilisateur, mais ces valeurs sont généralement enregistrées dans des chaînes de caractères.

Exemple 8 :

Syntaxe:

lignes_hier = "52"
lignes_aujourd_hui = "238"
lignes_plus = int(lignes_aujourd_hui) - int(lignes_hier)
print(lignes_plus)

Résultat d’exécution :

La variable lines_plus est automatiquement convertie en un nombre entier, elle est égale à la valeur 168. Nous pouvons aussi convertir les nombres de l'exemple ci-dessus en valeurs floats en utilisant la fonction float () au lieu de la fonction int (). Au lieu de la sortie, nous obtiendrons la sortie de 168.0, un float.

Remarque :

On ne peut pas convertir tous les types de données en un autre type de données différent. Par exemple, si une chaîne de caractères est constituée de lettres, vous obtiendrez une erreur lorsque vous essaierez d'utiliser la fonction int () simplement parce que les lettres ne peuvent pas être converties en type Integer. En revanche, si une chaîne est constituée de chiffres, l'opération sera réussie.

Par ailleurs, vous pouvez convertir tout type de lettres, de chiffres ou de caractères en type de chaîne. Ceci est équivalent à taper les chiffres entre guillemets ("") et cette représentation correspond au type de chaîne de caractères en Python. 

4. Conversion en Tuples et Listes

Vous pouvez utiliser les fonctions List () et tuple () pour convertir les valeurs qui sont passées en arguments aux types de données List et tuple respectivement. En Python :

  • ·Une liste : est une chaîne d'éléments ordonnée et modifiable qui est placée entre des crochets [].
  • ·Un tuple : est une suite ordonnée non - modifiable d'éléments contenus entre des parenthèses ().

4.1. Conversion en tuples

On commence par la conversion d'une liste en un tuple. Puisque ceci est considéré comme un type de données non - modifiables, il peut offrir une optimisation majeure aux programmes que nous réalisons. Quand nous utilisons la fonction tuple (), elle retourne la version tuple de la valeur qui lui est passée.

Exemple 9 :

Syntaxe:

print (tuple (['Syntaxes', 'google', 'yahoo', 'Yandex'])
print(tuple('Syntaxes'))
list= ['Syntaxes', 'google', 'yahoo', 'Yandex']
print(tuple(list))

Résultat d’exécution :

Nous observons qu'un tuple est affiché dans la sortie, car les éléments sont maintenant contenus entre parenthèses au lieu de crochets.

4.2. Conversion en listes :

La conversion des valeurs, en particulier des tuples, en listes est parfois très efficace lorsque vous disposez d'une version éditable de cette valeur. Nous utilisons la fonction List() pour la conversion des tuples en listes. Comme la syntaxe de construction d'une liste comporte des parenthèses, assurez-vous d'utiliser les parenthèses de la fonction List(), et donc également la fonction print() dans ce cas :

Exemple 10:

Syntaxe:

print(list(('cour-gratuit', 'google', 'yahoo', 'yandex')))
print(list('cour-gratuit'))
tuple= ('cour-gratuit', 'google', 'yahoo', 'yandex')
print(list(tuple))

Résultat d’exécution :

Les crochets indiquent qu'une liste a été obtenue à partir de la valeur de tuple originale qui a été passée par la fonction list().

5. Exercices

 Exercice 1 :

Écrivez un programmes Python pour convertir un entier en une chaîne de caractères .

Exercice 2 :

Écrivez un programme python pour convertir un float en un entier.

Exercice 3 :

Écrivez un programme python pour additionner un nombre int et une chaine de  caractères.

Exercice 4 :

Écrivez un programme Python pour convertir une liste en un tuple.

6. Correction des exercices

Exercice 1 :

Syntaxe:

n=int(input("donner un nombre"))
print(str(n))
print(n," est de type ",type(str(n)))

Résultat de l’exécution :

Remarque :

 La fonction type() est utile si vous oubliez le type de variable ou d'objet pendant le déroulement des programmes d'écriture. L'opérateur est donc évalué à Vrai si les valeurs des opérandes de chaque côté de l'opérateur pointent vers le même objet et Faux autrement. Par ailleurs, l'opérateur n'est pas évalué à Faux si les valeurs des opérandes de chaque côté de l'opérateur pointent vers le même objet et Vrai autrement.

Exercice 2 :

Syntaxe:

n=float(input("donner un nombre"))
print(int(n))
print(int(n)," est de type ",type(int(n)))

Résultat d’exécution :

Exercice 3 :

Syntaxe:

n_int = 12
n_str = "4"
print("Type de données de n_int :",type(n_int))
print("Type de données de n_str avant Type Casting :",type(n_str))
n_str = int(n_str)
print("Type de données de n_str après Type Casting :",type(n_str))
n_s = n_int + n_str
print( Somme de n_int et n_str : ",n_s)
print("Type de données de la somme :",type(n_s))

Résultat d’exécution :

Exercice 4 :

Syntaxe:

#Convertir la liste en tuple
L = [5, 10, 7, 4, 15, 3]
print(L)
# utiliser la fonction tuple() intégrée à Python, en passant en paramètre la liste
T = tuple(L)

Résultat d’exécution :

7. Conclusion

Le type casting est une méthode utilisée pour changer les variables/valeurs déclarées dans un type de données en un autre type afin de correspondre à l'opération requise pour être effectuée par le code extrait. En python, cette fonction peut être réalisée en utilisant les fonctions du constructeur comme Int (), string (), float (), etc. L'exécution du processus de création de type peut être effectuée en utilisant deux types différents de création de type, tels que le type implicite et le type explicite. Nous tirons alors les conclusions suivantes :

  1. La Conversion de type est la conversion d'un objet d'un type de données à un autre type de données.
  2. La conversion de type implicite est effectuée automatiquement par la machine d'interprétation Python.
  3. Python élimine la perte de données lors de la conversion de type implicite.
  4. La Conversion de type explicite est également nommée Type Casting, les types de données des objets sont convertis à l'aide de fonctions prédéfinies par l'utilisateur.
  5. Dans le Type Casting, la perte de données peut se produire lorsque nous imposons l'objet à un type de données particulier.
Article publié le 02 Novembre 2020par Babachekhe Mohamed