TypeError: cannot concatenate 'str' and 'int' objects : comment résoudre le dilemme en langage Python ?

Chaque langage a ses propres concepts qui régissent sa façon de fonctionner. C'est le cas pour le langage Python. Le message d'erreur "TypeError: cannot concatenate 'str' and 'int' objects" est un message d'erreur que vous rencontrerez si vous débutez dans ce langage et que vous aviez l'habitude de coder avec un langage plus permissif. En effet, Python a une gestion des types différente d'autres langages pour certaines opérations.

Lorsque vous voulez écrire une chaîne de caractères composée de plusieurs éléments, la grande majorité des langages propose l'opérateur "+". Appliqué aux nombres, il sert pour effectuer une addition. Mais pour les chaînes de caractères, il permet de les concaténer.

>>> prenom = 'Jean'
>>> print('Coucou ' + prenom)
Coucou Jean

Si vous avez l'habitude de travailler avec JavaScript ou PHP, vous concaténez un entier avec une chaîne de caractères sans souci. Le langage appelle automatiquement une méthode qui convertit le nombre en chaîne de caractères, et les chaînes sont ensuite concaténées. Il est même possible de coder une méthode pour que n'importe quelle classe soit convertie en chaîne de caractères à l'affichage (méthode toString() en javascript et __toString() en PHP). Dans le langage Python, le typage lors de la concaténation est plus strict. Vous ne pouvez pas concaténer une chaîne de caractères avec un entier sans changer le type. Si vous le faites, vous obtenez le message d'erreur cité plus haut. Vous devez faire appel à la fonction str() qui convertit un nombre en chaîne de caractères. Cette fonction peut aussi être utilisée pour une classe que vous avez créée, elle va appeler alors la méthode "__str__()" de votre classe.

>>> nombre_pommes = 33
>>> print('Nombre de pommes dans mon arbre : ' + nombre_pommes)
TypeError: cannot concatenate 'str' and 'int' objects
>>> print('Nombre de pommes dans mon arbre : ' + str(nombre_pommes))
Nombre de pommes dans mon arbre : 33

Python