Anglais Français
Python - Conversion de type
Conversion de types Python
D'un point de vue programmation, un transtypage de type fait référence à la
conversion d'un objet d'un type en un autre. Ici, nous allons en apprendre
davantage sur la conversion de type en programmation Python.
Python Type Casting est un processus dans lequel nous convertissons un littéral
d'un type de données en un autre type de données. Python prend en charge
deux types de casting : implicite et explicite .
En Python, il existe différents types de données, tels que des nombres, des
séquences, des mappages, etc. Il peut arriver que vous disposiez de données
disponibles d'un type mais que vous souhaitiez les utiliser sous une autre forme. Par
exemple, l’utilisateur a saisi une chaîne mais vous souhaitez l’utiliser comme
nombre. Le mécanisme de conversion de type de Python vous permet de le faire.
Casting implicite Python
Lorsqu'un compilateur/interprète de langage convertit automatiquement un objet
d'un type en un autre, cela est appelé conversion automatique ou implicite .
Python est un langage fortement typé. Il ne permet pas la conversion automatique
de type entre des types de données non liés. Par exemple, une chaîne ne peut être
convertie en aucun type de nombre. Cependant, un entier peut être converti en
flottant. D'autres langages tels que JavaScript sont un langage faiblement typé, dans
lequel un entier est contraint en une chaîne pour la concaténation.
Notez que les besoins en mémoire de chaque type de données sont différents. Par
exemple, un objet entier en Python occupe 4 octets de mémoire, tandis qu'un objet
flottant a besoin de 8 octets en raison de sa partie fractionnaire. Par conséquent,
l'interpréteur Python ne convertit pas automatiquement un float en int , car cela
entraînerait une perte de données. D'un autre côté, int peut être facilement converti
en float en définissant sa partie fractionnaire sur 0.
Le casting implicite d' int en float a lieu lorsqu'une opération arithmétique sur les
opérandes int et float est effectuée.
Considérons que nous avons une variable , int et une variable float
Anglais Français
<<< a=10 # int object
<<< b=10.5 # float object
Pour effectuer leur addition, 10 - l'objet entier est mis à niveau vers 10.0. Il s'agit
d'un flottant, mais équivalent à sa valeur numérique précédente. Nous pouvons
maintenant effectuer l'ajout de deux flotteurs.
<<< c=a+b
<<< print (c)
20.5
Lors du transtypage de type implicite, un objet Python avec une taille d'octet
inférieure est mis à niveau pour correspondre à la taille d'octet plus grande d'un
autre objet de l'opération. Par exemple, un objet booléen est d'abord mis à niveau
vers int puis vers float, avant l'ajout d'un objet à virgule flottante. Dans l'exemple
suivant, nous essayons d'ajouter un objet booléen dans un float, veuillez noter que
True est égal à 1 et False est égal à 0.
a=True;
b=10.5;
c=a+b;
print (c);
Cela produira le résultat suivant :
11.5
Casting explicite Python
Bien que la conversion automatique ou implicite soit limitée à la conversion int en
float , vous pouvez utiliser les fonctions intégrées de Python int(), float() et str()
pour effectuer les conversions explicites telles que la chaîne en entier.
Fonction Python int()
La fonction int() intégrée de Python convertit un littéral entier en objet entier, un
flottant en entier et une chaîne en entier si la chaîne elle-même a une
représentation littérale entière valide.
Utiliser int() avec un objet int comme argument équivaut à déclarer directement un
Anglais
objet int .
Français
<<< a = int(10)
<<< a
10
est identique à -
<<< a = 10
<<< a
10
<<< type(a)
<class 'int>
Si l'argument de la fonction int() est un objet float ou une expression à virgule
flottante, il renvoie un objet int. Par exemple -
<<< a = int(10.5) #converts a float object to int
<<< a
10
<<< a = int(2*3.14) #expression results float, is converted to int
<<< a
6
<<< type(a)
<class 'int'>
La fonction int() renvoie également l'entier 1 si un objet booléen est donné en
argument.
<<< a=int(True)
<<< a
1
<<< type(a)
<class 'int'>
Chaîne en entier
La fonction int() renvoie un entier à partir d'un objet chaîne, uniquement s'il
contient une représentation entière valide.
<<< Anglais
a = int("100")
<<< a
Français
100
<<< type(a)
<class 'int'>
<<< a = ("10"+"01")
<<< a = int("10"+"01")
<<< a
1001
<<< type(a)
<class 'int'>
Cependant, si la chaîne contient une représentation non entière, Python déclenche
ValueError.
<<< a = int("10.5")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '10.5'
<<< a = int("Hello World")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'Hello World'
La fonction int() renvoie également un entier à partir d'une chaîne binaire, octale et
hexadécimale. Pour cela, la fonction a besoin d'un paramètre de base qui doit être
respectivement 2, 8 ou 16. La chaîne doit avoir une représentation
binaire/octale/hexadécimale valide.
Chaîne binaire en entier
La chaîne doit être composée uniquement de 1 et de 0 et la base doit être 2.
<<< a = int("110011", 2)
<<< a
51
L'équivalent décimal du nombre binaire 110011 est 51.
Chaîne octale en entier
La chaîne ne doit contenir que 0 à 7 chiffres et la base doit être 8.
<<< Anglais
a = int("20", 8)
<<< a
Français
16
L'équivalent décimal de l'octal 20 est 16.
Chaîne hexadécimale en entier
La chaîne ne doit contenir que les symboles hexadécimaux, c'est-à-dire 0-9 et A, B,
C, D, E ou F. La base doit être 16.
<<< a = int("2A9", 16)
<<< a
681
L'équivalent décimal de l'hexadécimal 2A9 est 681. Vous pouvez facilement vérifier
ces conversions avec l'application de calculatrice sous Windows, Ubuntu ou
smartphones.
Voici un exemple pour convertir un nombre, un flottant et une chaîne en type de
données entier :
a = int(1) # a will be 1
b = int(2.2) # b will be 2
c = int("3") # c will be 3
print (a)
print (b)
print (c)
Cela produit le résultat suivant -
1
2
3
Fonction Python float()
float () est une fonction intégrée à Python. Il renvoie un objet float si l'argument est
un littéral flottant, un entier ou une chaîne avec une représentation à virgule
flottante valide.
Utiliser float() avec un objet float comme argument équivaut à déclarer directement
Anglais
un objet float
Français
<<< a = float(9.99)
<<< a
9.99
<<< type(a)
<class 'float'>
est identique à -
<<< a = 9.99
<<< a
9.99
<<< type(a)
<class 'float'>
Si l'argument de la fonction float() est un entier, la valeur renvoyée est une virgule
flottante avec une partie fractionnaire définie sur 0.
<<< a = float(100)
<<< a
100.0
<<< type(a)
<class 'float'>
La fonction float() renvoie un objet float à partir d'une chaîne, si la chaîne contient
un nombre à virgule flottante valide, sinon ValueError est levée.
<<< a = float("9.99")
<<< a
9.99
<<< type(a)
<class 'float'>
<<< a = float("1,234.50")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: could not convert string to float: '1,234.50'
La raison de ValueError ici est la présence d'une virgule dans la chaîne.
Aux fins de la conversion de chaîne en flottant, la notation scientifique de la virgule
flottante est également considérée comme valide.
<<< Anglais
a = float("1.00E4")
<<< a
Français
10000.0
<<< type(a)
<class 'float'>
<<< a = float("1.00E-4")
<<< a
0.0001
<<< type(a)
<class 'float'>
Voici un exemple pour convertir un nombre, un float et une chaîne en type de
données float :
a = float(1) # a will be 1.0
b = float(2.2) # b will be 2.2
c = float("3.3") # c will be 3.3
print (a)
print (b)
print (c)
Cela produit le résultat suivant -
1.0
2.2
3.3
Fonction Python str()
Nous avons vu comment un Python obtient un nombre entier ou flottant à partir de
la représentation sous forme de chaîne correspondante. La fonction str() fonctionne
à l'opposé. Il entoure un objet entier ou flottant de guillemets (') pour renvoyer un
objet str. La fonction str() renvoie la représentation sous forme de chaîne de
n'importe quel objet Python. Dans cette section, nous verrons différents exemples
de fonction str() en Python.
La fonction str() a trois paramètres. Le premier paramètre (ou argument) requis est
l’objet dont nous voulons la représentation sous forme de chaîne. Les deux autres
opérateurs, encodage et erreurs, sont facultatifs.
Nous exécuterons la fonction str() dans la console Python pour vérifier facilement
Anglais
chaîne, avec les guillemets entourant (').
Français
que l'objet renvoyé est une
Entier en chaîne
Vous pouvez convertir n'importe quel nombre entier en chaîne comme suit :
<<< a = str(10)
<<< a
'10'
<<< type(a)
<class 'str'>
Flotteur vers chaîne
La fonction str() convertit les objets à virgule flottante avec à la fois les notations à
virgule flottante, la notation standard avec un point décimal séparant les parties
entières et fractionnaires, et la notation scientifique en objet chaîne.
<<< a=str(11.10)
<<< a
'11.1'
<<< type(a)
<class 'str'>
<<< a = str(2/5)
<<< a
'0.4'
<<< type(a)
<class 'str'>
Dans le second cas, une expression de division est donnée en argument à la fonction
str(). Notez que l'expression est évaluée en premier, puis le résultat est converti en
chaîne.
Les points flottants dans les notations scientifiques utilisant E ou e et avec une
puissance positive ou négative sont convertis en chaîne avec la fonction str().
<<< a=str(10E4)
<<< a
'100000.0'
<<< type(a)
<class 'str'>
<<< a=str(1.23e-4)
<<< a
Anglais Français
'0.000123'
<<< type(a)
<class 'str'>
Lorsque la constante booléenne est entrée en argument, elle est entourée de (')
pour que True devienne 'True'. Les objets List et Tuple peuvent également être
donnés en argument à la fonction str(). La chaîne résultante est la liste/tuple
entourée de (').
<<< a=str('True')
<<< a
'True'
<<< a=str([1,2,3])
<<< a
'[1, 2, 3]'
<<< a=str((1,2,3))
<<< a
'(1, 2, 3)'
<<< a=str({1:100, 2:200, 3:300})
<<< a
'{1: 100, 2: 200, 3: 300}'
Voici un exemple pour convertir un nombre, un flottant et une chaîne en type de
données chaîne :
a = str(1) # a will be "1"
b = str(2.2) # b will be "2.2"
c = str("3.3") # c will be "3.3"
print (a)
print (b)
print (c)
Cela produit le résultat suivant -
1
2.2
3.3
Anglais
Conversion types
desFrançais de séquence
List, Tuple et String sont les types de séquence de Python. Il s’agit d’une collection
d’éléments ordonnés ou indexés.
Une chaîne et un tuple peuvent être convertis en un objet liste à l'aide de la fonction
list() . De même, la fonction tuple() convertit une chaîne ou une liste en tuple.
Nous prendrons un objet pour chacun de ces trois types de séquences et étudierons
leur inter-conversion.
<<< a=[1,2,3,4,5] # List Object
<<< b=(1,2,3,4,5) # Tupple Object
<<< c="Hello" # String Object
### list() separates each character in the string and builds the list
<<< obj=list(c)
<<< obj
['H', 'e', 'l', 'l', 'o']
### The parentheses of tuple are replaced by square brackets
<<< obj=list(b)
<<< obj
[1, 2, 3, 4, 5]
### tuple() separates each character from string and builds a tuple of charac
<<< obj=tuple(c)
<<< obj
('H', 'e', 'l', 'l', 'o')
### square brackets of list are replaced by parentheses.
<<< obj=tuple(a)
<<< obj
(1, 2, 3, 4, 5)
### str() function puts the list and tuple inside the quote symbols.
<<< obj=str(a)
<<< obj
'[1, 2, 3, 4, 5]'
<<< obj=str(b)
<<< obj
Anglais
'(1, 2, 3, 4, 5)'
Français
Ainsi, la fonctionnalité de conversion de type explicite de Python permet la
conversion d'un type de données en un autre à l'aide de ses fonctions intégrées.
Fonctions de conversion de types de données
Il existe plusieurs fonctions intégrées pour effectuer la conversion d'un type de
données à un autre. Ces fonctions renvoient un nouvel objet représentant la valeur
convertie.
Sr. Non. Description de la fonction
Fonction Python int()
1
Convertit x en un entier. base spécifie la base si x est une chaîne.
Fonction Python long()
2
Convertit x en un entier long. base spécifie la base si x est une chaîne.
Fonction Python float()
3
Convertit x en nombre à virgule flottante.
Fonction Python complexe()
4
Crée un nombre complexe.
Fonction Python str()
5
Convertit l'objet x en une représentation sous forme de chaîne.
Fonction Python repr()
6
Convertit l'objet x en une chaîne d'expression.
Fonction Python eval()
7
Évalue une chaîne et renvoie un objet.
Fonction Python tuple()
8
Convertit s en tuple.
Fonction Python liste()
9
Convertit s en liste.
Fonction Python set()
dix
Convertit s en un ensemble.
11 Fonction Python dict()
Anglais Français
Crée un dictionnaire. d doit être une séquence de tuples (clé, valeur).
Fonction Python Frozenset()
12
Convertit s en un ensemble gelé.
Fonction Python chr()
13
Convertit un entier en caractère.
Fonction Python unichr()
14
Convertit un entier en caractère Unicode.
Fonction Python ord()
15
Convertit un seul caractère en sa valeur entière.
Fonction Python hex()
16
Convertit un entier en chaîne hexadécimale.
Fonction Python oct()
17
Convertit un entier en chaîne octale.