2.4. Conversions de types¶
On peut convertir un objet d’un type vers un autre type : il suffit pour cela d’utiliser le nom du type vers lequel on veut convertir. On parle alors de conversion explicite.
In [1]: int('42')
Out[1]: 42
In [2]: type(int('42'))
Out[2]: int
In [3]: str(25)
Out[3]: '25'
In [4]: type(str(25))
Out[4]: str
Il se peut que certaines conversions soient impossibles.
In [5]: int('45f6')
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[5], line 1
----> 1 int('45f6')
ValueError: invalid literal for int() with base 10: '45f6'
L’utilisation d’opérateurs pour des objets dont le type n’est pas approprié peut donner lieu à des conversions implicites.
# Le booléen True est automatiquement converti en l'entier 1 pour pouvoir l'ajouter à l'entier 2
In [6]: True + 2
Out[6]: 3
Mais il se peut qu’aucune conversion implicite ne puisse avoir lieu, ce qui conduit alors à une erreur.
In [7]: 'a' + 1.23
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[7], line 1
----> 1 'a' + 1.23
TypeError: can only concatenate str (not "float") to str