CodeGym /Cours /Python SELF FR /Conversion des types de données

Conversion des types de données

Python SELF FR
Niveau 5 , Leçon 2
Disponible

2.1 Détermination du type

Parfois, à un endroit donné du code, on ne sait pas exactement quelles données sont stockées dans une variable. Pour cela, Python a une fonction type(), qui est utilisée pour déterminer le type d'un objet.

C'est une fonction intégrée qui renvoie le type de l'objet spécifié, ce qui peut être utile pour le débogage, la validation de données ou lors de l'implémentation d'une logique dépendant des types de données.

Principe de fonctionnement de la fonction type()

Quand tu appelles type(x), Python renvoie un objet spécial type, qui représente le type de la variable x. Par exemple :


x = 1
print(type(x))  # Affichera: <class 'int'>

x = "salut"
print(type(x))  # Affichera: <class 'str'>

x = [1, 2, 3]
print(type(x))  # Affichera: <class 'list'>

Remarque que le mot "class" sera affiché. C'est parce que même les types int, str, list et d'autres sont aussi des classes, simplement intégrées — tu n'as pas besoin de les déclarer, elles sont fournies par défaut avec Python.

Utilisation pratique

La fonction type() est souvent utilisée dans des scénarios où il est nécessaire de différencier les actions en fonction du type de données.

  • Des actions différentes peuvent être effectuées en fonction du type de la variable.
  • Dans les fonctions et les méthodes, pour s'assurer de la validité des types d'arguments.

Si tu veux t'assurer qu'une variable contient un nombre, écris du code de ce type :


arg = 123
if type(arg) == int:
    print(arg + 10)  # Affichera: 133               

Un exemple plus pratique, où nous vérifions le type de l'objet stocké dans la variable :


arg = "123"
if type(arg) == int:
    print(arg + 10)  # Cela ne s'exécutera pas, car arg est une chaîne
elif type(arg) == str:
    print(arg + " monde")  # Affichera: 123 monde
else:
    print("Type inconnu")               

2.2 Attribution explicite de type

En Python, l'indication explicite du type d'objet se fait à l'aide de fonctions de conversion de type, telles que int(), float(), str(), tuple() et d'autres. Ces fonctions permettent de spécifier un type particulier et de convertir des données d'un type en un autre, ce qui est pratique pour traiter les entrées utilisateur, effectuer des opérations mathématiques ou travailler avec des chaînes et des collections de données.

Exemples de fonctions de conversion de type

int() : Convertit les données en un nombre entier. On a déjà rencontré cette fonction plusieurs fois et on sait que si on passe une chaîne avec un nombre, int() la convertira en le nombre entier correspondant.


num = int("123")  # num sera le nombre entier 123               

float() : Une autre fonction familière. Convertit les données en un nombre à virgule flottante.


num = float("123.45")  # num sera 123.45               

str() : Convertit n'importe quel objet Python en une représentation sous forme de chaîne.


s = str(10.5)  # s sera '10.5'               

tuple() : Convertit une séquence en un tuple.


t = tuple([1, 2, 3])  # t deviendra (1, 2, 3)               

list() : Convertit un objet itérable (par exemple, une chaîne ou un tuple) en liste. Un objet itérable est un objet qui peut être parcouru séquentiellement, comme des chaînes, des listes ou des tuples.


l = list("abc")  # l sera ['a', 'b', 'c']               

dict() : Crée un dictionnaire à partir d'une séquence clé-valeur.


d = dict([(1, 'a'), (2, 'b')])  # d sera {1: 'a', 2: 'b'}

Nous parlerons des dictionnaires et des tuples un peu plus tard, mais je pense que tu as compris l'idée générale : si tu dois explicitement assigner un type, tu peux toujours utiliser les fonctions mentionnées ci-dessus.

2.3 Conversion des types

En Python, la conversion explicite (ou casting) permet aux programmeurs de contrôler et de modifier les types de données des variables. Cela peut être utile pour assurer la compatibilité des données dans différentes opérations ou pour corriger les types de données reçus par saisie utilisateur ou lors de la lecture de fichiers. Essentiellement, une conversion ou un casting de type signifie la même chose : le processus de modification du type de données d'un objet en un autre type.

Nous sommes déjà un peu familiers avec le casting explicite. En Python, il est réalisé via des fonctions intégrées, comme int(), float(), str(), tuple(), list(), dict(), set() et d'autres.

Pour consolider, voici quelques exemples supplémentaires :

Fonction Description Exemple d'entrée Exemple de sortie
int() Conversion en un nombre entier int("10") 10
float() Conversion en un nombre à virgule flottante float("20.5") 20.5
str() Conversion en chaîne str(15) "15"
tuple() Conversion en tuple tuple([1, 2, 3]) (1, 2, 3)
list() Conversion en liste list("abc") ['a', 'b', 'c']
dict() Création d'un dictionnaire à partir de paires clé-valeur dict([(1, 'one'), (2, 'two')]) {1: 'one', 2: 'two'}
set() Création d'un ensemble à partir d'une liste set([1, 1, 2, 2, 3, 3]) {1, 2, 3}

Exemples d'utilisation

Le casting explicite est utilisé dans de nombreux scénarios, y compris :

  • Traitement de l'entrée utilisateur : Garantir que les données saisies correspondent au type de données attendu.
  • Interopérabilité des données : Quand les données de différentes sources ou API doivent être combinées ou comparées.
  • Gestion des erreurs : Prévenir les erreurs d'exécution en convertissant les données en un type approprié avant d'effectuer des opérations.

Meilleures pratiques et avertissements

Le casting explicite doit être utilisé de manière réfléchie pour éviter la perte de données (par exemple, lors de la conversion d'un float en int) ou des erreurs de conversion (par exemple, tenter de convertir une chaîne non numérique en un nombre).

Il est également important de se rappeler que certaines conversions peuvent ne pas être évidentes et mener à des résultats inattendus, nécessitant une vérification minutieuse des données. Par exemple, convertir un int en bool et vice versa peut avoir des effets inattendus :)

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION