Maîtriser la conversion et le transtypage de types en Python : Guide complet
Conversion et transtypage de types en Python
Dans cet article, vous apprendrez la conversion de type et les utilisations de la conversion de type.
Avant d'apprendre la conversion de type en Python, vous devriez avoir des connaissances sur les types de données Python.
Conversion de type
Le processus de conversion de la valeur d'un type de données (entier, chaîne, float, etc.) vers un autre type de données est appelé conversion de type. Python a deux types de conversion de type.
- Conversion de type implicite
- Conversion de type explicite
Conversion de type implicite
Dans la conversion de type implicite, Python convertit automatiquement un type de données en un autre type de données. Ce processus ne nécessite aucune intervention de l'utilisateur.
Voyons un exemple où Python promeut la conversion du type de données inférieur (entier) vers le type de données supérieur (float) pour éviter la perte de données.
Exemple 1 : Conversion d'entier en float
num_int = 123
num_flo = 1.23
num_new = num_int + num_flo
print("type de num_int :", type(num_int))
print("type de num_flo :", type(num_flo))
print("Valeur de num_new :", num_new)
print("type de num_new :", type(num_new))
Lorsque nous exécutons le programme ci-dessus, la sortie sera :
type de num_int : <class 'int'> type de num_flo : <class 'float'> Valeur de num_new : 124.23 type de num_new : <class 'float'>
Dans le programme ci-dessus,
- Nous ajoutons deux variables num_int et num_flo, stockant la valeur dans num_new.
- Nous examinons le type de données des trois objets respectivement.
- Dans la sortie, nous voyons que le type de données de num_int est un
entiertandis que le type de données de num_flo est unfloat. - Aussi, nous voyons que num_new a un type de données
floatcar Python convertit toujours les types de données plus petits vers les plus grands pour éviter la perte de données.
Maintenant, essayons d'ajouter une chaîne et un entier, et voyons comment Python gère cela.
Exemple 2 : Addition de chaîne (type supérieur) et entier (type inférieur)
num_int = 123
num_str = "456"
print("Type de données de num_int :", type(num_int))
print("Type de données de num_str :", type(num_str))
print(num_int + num_str)
Lorsque nous exécutons le programme ci-dessus, la sortie sera :
Type de données de num_int : <class 'int'> Type de données de num_str : <class 'str'> Traceback (most recent call last): File "python", line 7, in <module> TypeError: unsupported operand type(s) for +: 'int' and 'str'
Dans le programme ci-dessus,
- Nous ajoutons deux variables num_int et num_str.
- Comme nous le voyons dans la sortie, nous obtenons une
TypeError. Python n'est pas capable d'utiliser la Conversion Implicite dans de telles conditions. - Cependant, Python a une solution pour ce type de situations, connue sous le nom de Conversion Explicite.
Conversion de type explicite
Dans la conversion de type explicite, les utilisateurs convertissent le type de données d'un objet vers le type de données requis. Nous utilisons les fonctions prédéfinies comme int(), float(), str(), etc. pour effectuer la conversion de type explicite.
Ce type de conversion est aussi appelé transtypage (typecasting) car l'utilisateur caste (change) le type de données des objets.
Syntaxe :
<required_datatype>(expression)
Le transtypage peut être fait en assignant la fonction du type de données requis à l'expression.
Exemple 3 : Addition de chaîne et d'entier en utilisant la conversion explicite
num_int = 123
num_str = "456"
print("Type de données de num_int :", type(num_int))
print("Type de données de num_str avant Transtypage :", type(num_str))
num_str = int(num_str)
print("Type de données de num_str après Transtypage :", type(num_str))
num_sum = num_int + num_str
print("Somme de num_int et num_str :", num_sum)
print("Type de données de la somme :", type(num_sum))
Lorsque nous exécutons le programme ci-dessus, la sortie sera :
Type de données de num_int : <class 'int'> Type de données de num_str avant Transtypage : <class 'str'> Type de données de num_str après Transtypage : <class 'int'> Somme de num_int et num_str : 579 Type de données de la somme : <class 'int'>
Dans le programme ci-dessus,
- Nous ajoutons les variables num_str et num_int.
- Nous avons converti num_str de chaîne (supérieur) en entier (inférieur) en utilisant la fonction
int()pour effectuer l'addition. - Après avoir converti num_str en une valeur entière, Python est capable d'ajouter ces deux variables.
- Nous avons obtenu la valeur num_sum et son type de données comme entier.
Points clés à retenir
- La Conversion de Type est la conversion d'un objet d'un type de données à un autre type de données.
- La Conversion de Type Implicite est effectuée automatiquement par l'interpréteur Python.
- Python évite la perte de données dans la Conversion de Type Implicite.
- La Conversion de Type Explicite est aussi appelée Transtypage (Type Casting), les types de données des objets sont convertis en utilisant des fonctions prédéfinies par l'utilisateur.
- Dans le Transtypage, une perte de données peut se produire car nous forçons l'objet à un type de données spécifique.
Python
- Mots-clés et identifiants Python : Maîtriser les mots réservés et les conventions de nommage
- Instructions, indentation et commentaires en Python : Guide clair
- Variables, constantes et littéraux en Python – Guide complet
- Maîtriser les types de données Python : Guide pratique
- Maîtriser les E/S et l'importation de modules en Python : Guide pratique
- Comprendre les variables globales, locales et non locales en Python
- Maîtriser les nombres, la conversion de types et les mathématiques en Python
- Maîtriser les opérations sur les répertoires et fichiers en Python
- Maîtriser les erreurs et exceptions intégrées de Python