Types
=====

On a vu qu'on pouvait utiliser ``+`` **à la fois** pour additionner des nombres
ou concaténer des strings. Mais on ne peut pas utiliser ``+`` avec une string
d'un côté et un entier de l'autre::

   a = 42
   b = 4
   a + b  # ok

   salutation = "bonjour, "
   prénom = "Bob"
   salutation + prénom  # ok

   message = "La réponse est " + a
   # affiche:
   # TypeError: can only concatenate str (not "int") to str


Ceci est notre premier message d'erreur: si l'interpréteur est incapable
d'éxécuter une instruction, il affiche un message d'erreur est s'interrompt
immédiatement.


Conversions
-----------

Pour résoudre le problème ci-dessus, il faut effectuer une *conversion de types:*

Entier vers string
++++++++++++++++++

On peut convertir un entier en string en utilisant le mot ``str`` et des parenthèses
autour de la variable ou de la valeur::

    message = "La réponse est: " + str(42)
    print(message)
    # affiche: La réponse est 42

    réponse = 42
    message = "La réponse est: " + str(42)
    print(message)
    # affiche: La réponse est 42



String vers nombres
+++++++++++++++++++

Inversement, on peut convertir un string en entrier en utilisant
le mot ``int`` et des parenthèses::


   quarante_deux_en_chiffres = "42"
   réponse = int(quarante_deux_en_chiffres)
   print(réponse)
   # affiche: 42

Pour convertir une string en flottant, on peut utiliser ``float()``::

    taille_sur_le_passeport = "1.62"
    taille_en_mètres = float(taille_sur_le_passeport)


