user@linuxtrack:~ $ python -c 'print("Soyez les bienvenus !")'

Vous n'êtes pas identifié(e).

#1 03-07-2014 19:19:40

IceF0x
#! Gourou Linux

Comprendre L'erreur TypeError:Can't concatenate 'str' and 'int' object

Voici un exemple simple pour comprendre l'erreur quand on mélange des chiffres et des lettres en python

Il existe de nombreux type en python, mais entier et chaîne sont les plus courant, mais l'association des deux type provoque une erreur.
Exemple avec 3 variable a,b et c

a = 2 ici nous avons un entier

b = "2" ici nous avons un nombre mais comme il est entre des quottes cela devient une chaîne de caractère.

c = "test" ici nous avons une simple chaine.

Résultat:

┌─[icef0x]──[archbang]:~$
└──>>python
Python 3.4.1 (default, May 19 2014, 17:40:19)
[GCC 4.9.0 20140507 (prerelease)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a=2
>>> b='3'
>>> c='test'
>>> a
2
>>> c
'test'
>>> c+a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitly
>>> c+b
'test3'
>>> quit()

Par contre si on l'affiche sans + mais avec une virgule , il affichera le résultat comme il faut mais séparé par un espace.

Résultat:

>>> a,b
(2, '2')
>>> print(a,b)
2 2
>>>

Maintenant pour convertir un chiffre considéré comme une chaîne de texte en chiffre réel il suffit d'utiliser int().

>>> a=2
>>> b='3'
>>> a+int(b)
5
>>>

Pour un nombre avec une virgule utiliser float()

>>> a=2
>>> b='3'
>>> a+float(b)
5.0
>>> a=2.5
>>> a+float(b)
5.5
>>>

Et inversement convertir un chiffre entier en une chaîne de caractère avec str().

>>> a=2
>>> b='3'
>>> c='test'
>>> c+str(a)
'test2'
>>>


Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D

Hors ligne

Pied de page des forums