Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Vous est-il déjà arrivé de vous sécher les mains avec le torchon qui est destiné au chien ? Ou d'essuyer les pattes de votre chien avec la belle serviette en soie de maman ?
Imaginez, vous avez 3 serviettes en soie et 1 torchon pour le chien.
Si votre mère vous demande un jour combien de serviettes il y a dans la salle de bains, vous ne pouvez pas lui répondre 4, on ne mélange pas les torchons et les belles serviettes. Hé ben pour les variables c'est pareil. On ne mélange pas les types, on n'additionne pas des chiffres avec des chaînes de caractères, et on ne commet pas non plus d'autres barbaries innommables.
Essayez donc ça :
Code : Python1 | "Je suis un boss en python !" + 25
|
Une jolie erreur apparaît :
Code : Console | TypeError: cannot concatenate 'str' and 'int' objects |
Le premier mot nous indique que l'erreur est une erreur de type. Après, python nous indique qu'il ne peut pas concaténer (un verbe compliqué qui veut dire "additionner des chaînes", pour rester simple) le type 'str', avec le type 'int'.
Heu... C'est quoi un type ?
Sachez tout d'abord que lorsque vous créez une variable, que vous voulez afficher quelque chose (comme dans l'exemple), etc... tout a un type.
Une poire est une poire. Ce n'est pas une pomme.
Au début (et même après

), vous aurez souvent ce genre d'erreurs.
Et le type str et int c'est quoi ?
Une chaîne de caractères, qui est délimitée par des guillemets, est de type
str. C'est un mot raccourci pour dire "string". Quand vous demandez à Python d'afficher "Je suis un boss en python !", il affiche en fait une chaîne de caractères, et lui-même le définit comme un "objet" de type "str". C'est très pointu (mais très intéressant) et nous verrons toute cette partie de Python beaucoup plus tard.
Un nombre est de type
int. Ça veut dire "integer". Il n'y a pas de virgule. Un nombre integer est, par définition, entier. S'il y a une virgule (un point, car Python est anglophone), alors ce nombre devient de type float. Le type float garde jusqu'a 15 chiffres après la virgule. Après, il arrondit.
Si vous divisez un nombre de type
float, alors Python donnera le résultat avec ce qu'il y a derrière la virgule :
Code : Python
Code : Console
Notez le . après 25. Il indique à Python que 25 est de type float.
Quand vous demandez à Python d'afficher "Je suis un boss en python !", il affiche en fait une chaîne de caractères. Mais si vous lui demandez :
Code : Python
Dans ce cas, il affiche une donnée de type integer. Vous pouvez lui dire :
Code : Python1
2
3
4 | a = 25
b = 65.
c = "Hello Maman !"
print a, b, c
|
Affichera tout d'abord 25, de type int, puis 65., de type float, et enfin "Hello Maman !", de type str. La fonction print n'influe en rien sur le type des données qu'elle affiche.
Faites très attention aux types. Les erreurs de typage sont souvent les premiers bugs qu'un programmeur doit éliminer dans son code - et c'est souvent fastidieux.
Comme vous venez de l'apprendre, tout a un type.
Le problème, c'est qu'il y a des choses possibles avec un certain type qu'on ne peut pas faire avec d'autres...
Tenez, une addition. Si vous demandez à Python d'additionner deux nombres (de type int, par exemple), ça marchera :
Code : Console
Vous pouvez aussi additionner des float entre eux, et des int avec des float :
Code : Console | >>> 1.789 + 2.12012
3.9091199999999997
>>> 1.+25
26.0 |
Mais si vous essayez d'ajouter 2 à "Je suis un Zer0", Python se fâche (la même erreur qu'au début de la sous-partie).
Il y a donc des règles qui régissent les opérations entre les différents types... Mais lesquelles ?
Ce que l'on peut faire
Vous pouvez :
- Additionner, multiplier, soustraire, diviser des int avec des int
- Additionner, multiplier, soustraire, diviser des float avec des float
- Additionner, multiplier, soustraire, diviser des int avec des float (logique car ce sont tous les deux des chiffres)
- Additionner deux chaînes de caractères entre elles. Dans ce cas, Python, grâce à un procédé compliqué appelé la concaténation, ajoute à la première chaîne la seconde.
Code : Console | >>> a = "Hello"
>>> b = "Maman"
>>> print a + b
HelloMaman |
- Multpiler des str avec des int. Dans ce cas, Pyhon multiplie autant de fois que demandé la chaîne de départ. Notez que ça n'est pas une vraie multiplication, on appelle ceci une répétition :
Code : Console | >>> a = "Hello"
>>> print a * 3
HelloHelloHello |
Nous reviendrons sur ces opérations avec plus de détails
Ce que l'on ne peut pas faire
- Diviser, additionner, soustraire des str avec des int (ou des float)
- Il y a d'autres restrictions, avec d'autres types, que nous verrons plus tard

Tout a un type. Ici, nous n'en voyons que quelques-uns, naturellement Python présente des types adaptés à toutes les situations.
| Nom du Type | C'est quoi ? | Particularités | Opérations possibles |
|---|
str |
Chaîne de caractères |
Délimité par des guillemets |
str + str | str * int |
int |
Nombre entier |
Nombre entier |
int + int | int - int | int * int | int / int | int + float | int - float | int * float | int / float | str * int |
float |
Nombre a virgule |
Nombre a virgule |
float + float | float - float | float * float | float / float | int + float | int - float | int * float | int / float |
Ne retenez pas tout

. Ce tableau vous servira de récapitulatif. Quand vous aurez un problème, regardez si le problème ne vient pas de là.

Pas d'exercices pour cette partie. Pratiquez, codez des petits programmes, ils vous serviront d'exercices !