Section 4.2
Types et opérations de base
Dans la section précédente, nous avons vu comment Python effectue des calculs. Dans cette section, nous allons nous intéresser aux différents types de données que l'on peut utiliser en Python et aux opérations de base que l'on peut effectuer sur ces données.
Types de données
Comme nous l'avons vu dans la section précédente, Python permet de faire des calculs avec des nombres. On a par exemple vu comment faire des additions ou des multiplications entre des nombres. Python ne se limite pas à manipuler des nombres, il permet aussi de manipuler d'autres types de données, comme des chaînes de caractères ou des booléens (valeurs vrai et faux). Ci-dessous est un exemple de programme qui utilise ces différents types de données. Pas de nombres en vue, uniquement des chaînes de caractères et des booléens.
Dans le reste de cette section, nous allons nous intéresser aux différents types de données que l'on peut manipuler en Python et aux opérations de base qui y sont associées.
Les nombres
Comme nous l'avons vu dans la section précédente, Python permet
de manipuler des nombres comme 1
, 2
, 0
ou encore -12
.
Ces nombres sont appelés des entiers (ou integers en anglais);
ils n'ont pas de virgule.
Python permet aussi de manipuler des nombres à virgule comme 1.5
ou -2.3
.
Ces nombres sont appelés des nombres à virgule flottante, ou plus simplement des flottants (ou floats en anglais).
En Python, on utilise le point pour séparer la partie entière de la partie
décimale.
Opérations entre les nombres
Les opérations de base que l'on peut effectuer sur des nombres sont listées dans le tableau ci-dessous. Chaque opération se fait entre deux nombres et donne un résultat qui est aussi un nombre.
Opérateur | Signification | Exemple | Résultat |
---|---|---|---|
+ |
Addition | 1 + 2 |
3 |
- |
Soustraction | 6 - 2 |
4 |
* |
Multiplication | 3 * 4 |
12 |
** |
Puissance | 2 ** 5 |
32 |
/ |
Division | 7 / 2 |
3.5 |
// |
Division entière | 7 // 2 |
3 |
% |
Modulo | 7 % 2 |
1 |
! Remarque
Les deux dernières opérations sont un peu plus compliquées à comprendre.
La division entière permet de diviser deux nombres et de ne garder que la
partie entière du résultat. Par exemple, 7 // 2
donne
3
car 7 / 2
donne 3.5
et on ne garde
que la partie entière de ce résultat.
L'opération modulo est liée à la division entière. Elle permet de
calculer le reste de la division entière. Dans l'exemple, 7 % 2
donne 1
car la division entière de 7
par 2
(7 // 2
) donne 3
, or
3 * 2
donne 6
, il y a donc 1
qui manque
pour arriver à 7
.
L'opération modulo retourne ce 1
.
Le résultat de l'opération modulo est toujours entre zéro (compris) et le nombre par lequel on divise (non-compris).
Ainsi, par exemple, calculer un nombre entier modulo 2
donnera toujours un résultat
soit de 0
(pour les nombres pairs) soit de 1
(pour les nombres impairs).
L'opération modulo est très utile pour vérifier si un nombre est un multiple d'un autre.
Par exemple, pour vérifier si 8
est un multiple de 2
,
on peut faire 8 % 2
. Comme le résultat est zéro, alors 8
est un multiple de 2
. Si on fait 7 % 2
, le résultat
est 1
, donc 7
n'est pas un multiple de 2
.
Division par zéro
Lorsque lors d'un calcul Python rencontre une division par zéro, il émet une erreur à la place de continuer le calcul. En effet, il est impossible de diviser un nombre par zéro et Python s'arrête immédiatement pour éviter de faire des calculs erronés. Testez le code suivant pour voir ce que cela donne :
Comparaisons
En plus des opérations listée en dessus, il est possible de comparer
les nombres entre eux. Les opérations de comparaison sont listées
dans le tableau ci-dessous. Chaque opération se fait entre deux nombres
et donne un résultat qui est un booléen, c'est-à-dire une valeur vraie ou fausse.
Pour représenter ces valeurs, Python utilise les mots-clés True
et False
.
Opérateur | Signification | Exemple | Résultat |
---|---|---|---|
== |
Égalité | 5 == 2 |
False |
!= |
Inégalité | 2 != 7 |
True |
< |
Inférieur | 1 < 2 |
True |
> |
Supérieur | 5 > 5 |
False |
<= |
Inférieur ou égal | 1 <= 8 |
True |
>= |
Supérieur ou égal | 8 >= 8 |
True |
Fonctions sur les nombres
Python propose plusieurs fonctions qui permettent de manipuler les nombres. Les fonctions les plus courantes sont listées dans le tableau ci-dessous.
Fonction | Signification | Exemple | Résultat |
---|---|---|---|
abs |
Valeur absolue | abs(-5) |
5 |
max |
Maximum | max(2, 5) |
5 |
min |
Minimum | min(2, 5) |
2 |
! Remarque
Les nombres à virgule flottante ont une précision limitée, ce qui peut amener à des résultats étranges, surtout lorsqu'on compare des nombres entre eux. Voyez plutôt :
Le résultat est False
alors que l'on pourrait penser que
0.1 + 0.2
est égal à 0.3
.
À cause des imprécisions de calcul, le résultat de l'addition de 0.1
et 0.2
est
un nombre très proche de 0.3
, mais pas tout à fait égal à 0.3
.
Pour cette raison, on préférera utiliser des nombres entiers (ou d'autre représentation des nombres) lorsqu'on aura besoin de précision.
Les booléens
Comme mentionné précédemment, Python permet de représenter des valeurs
de vérité et de les manipuler.
Pour représenter le vrai on utilise le mot-clé True
,
alors qu'on utilise le mot-clé False
pour représenter le faux.
! Remarque
Les valeurs True
et False
sont appelées des booléens
en l'honneur de George Boole,
un mathématicien anglais du XIXème siècle qui a largement contribué à la logique moderne.
Opérateur | Signification | Exemple | Résultat |
---|---|---|---|
and |
Conjonction (ET) | True and False |
False |
or |
Disjonction (OU) | True or False |
True |
not |
Négation (NON) | not True |
False |
! Remarque
Les opérateurs booléens and
et or
sont calculés de manière particulière en Python.
En Python, lorsque l'on utilise and
dans un calcul,
la valeur de gauche est calculée en premier.
Si la valeur de gauche est False
, alors le résultat est forcément False
,
dans ce cas, Python ne calcul pas même pas la valeur de droite.
Ceci est une exception à la règle générale qui veut
que les opérandes sont toujours calculés avant d'effectuer le calcul d'une opération.
Par exemple, regardez le code suivant :
De même, lorsque l'on utilise or
dans un calcul,
la valeur de gauche est toujours calculée en premier.
Dans le cas où la valeur de gauche est True
,
alors le résultat est forcément True
et Python ne calcul pas la valeur de droite.
Nous reparlerons de cette façon particulière
de traiter les opérateurs and
et or
dans la suite du cours lorsque nous aborderons
les instructions conditionnelles
et les boucles.
! Remarque
En Python, pour des raisons historiques,
les booléens sont aussi considérés comme des nombres entiers.
En effet, True
est égal à 1
et False
est égal à 0
,
comme on peut le remarquer en exécutant le code ci-dessous.
Comme Python considère les booléens comme des nombres entiers, peut utiliser tous les opérateurs arithmétiques sur les booléens. Cependant, on évitera de le faire lorsque cela nuira à la clarté du code.
Les chaînes de caractères

Une chaîne de caractères est une suite de caractères qui représente du texte. Pour noter une chaîne de caractères en Python, on utilise des guillemets simples ou doubles autour du texte.
Nous présentons ici quelques opérations de bases. Nous revisiterons les chaînes de caractères plus en détails dans la suite de ce chapitre.
! Remarque
Lorsque l'on veut utiliser des guillemets au sein d'une chaîne de caractères
délimitée par les même guillemets, il faut échapper les guillemets
en les précédant d'une barre oblique inversée \
.
On appelle ce caractère le caractère d'échappement.
De ce fait, pour écrire une barre oblique inversée dans une chaîne de caractères, il faut aussi échapper le caractère. Dans ce cas, il faudra donc écrire deux barres obliques inversées pour obtenir une unique barre oblique inversée dans une chaîne de caractères.
De même, pour entrer un saut de ligne dans une chaîne de caractères,
on utilise la combinaison de caractères \n
.
Concaténation
Les chaînes de caractères peuvent être concaténées (mises bout à bout)
à l'aide de l'opérateur +
.
Les chaînes de caractères peuvent être répétées
à l'aide de l'opérateur *
suivi du nombre de répétitions.
Longueur d'une chaîne de caractères
La fonction len
permet de calculer la longueur d'une chaîne de caractères.
Comparaisons
Les opérateurs de comparaison (comme <
, >
, ==
, etc.)
peuvent aussi être utilisés avec les chaînes de caractères.
Dans ce cas, les chaînes de caractères sont comparées
en fonction de leur ordre alphabétique.
Entrée utilisateur
La fonction input
permet de demander à l'utilisateur
(la personne qui utilise le programme)
d'entrer une chaîne de caractères.
Lorsque la fonction input
est appelée,
le programme s'arrête, affiche la valeur donnée en argument à input
et attend que l'utilisateur entre du texte,
généralement au même endroit où les sorties du programme sont affichées.
Lorsque l'utilisateur a fini d'entrer sa chaîne de caractères,
il doit appuyer sur la touche Entrée
pour valider l'entrée.
Le programme reprend alors son exécution.
La valeur entrée par l'utilisateur est alors utilisée comme la valeur de l'appel à la fonction input
.
Conversions entre types de données
Comme nous venons de le voir, il existe plusieurs types de données en Python.
Chaque type de données a des opérations qui lui sont propres.
Par exemple, l'opération +
sur les nombres correspond à l'addition,
alors que l'opération +
sur les chaînes de caractères correspond à la concaténation.
Lorsque l'on essaie d'utiliser une opération sur des type de données incompatibles,
Python émet une erreur.
Parfois, pour réaliser une opération, il sera nécessaire de convertir une donnée d'un type en une donnée d'un autre type. Le plus souvent, il s'agira de convertir une chaines de caractères en un nombre ou inversement. Le tableau suivant résume les fonctions de conversion.
Fonction de conversion | Type de données obtenu |
---|---|
int |
Nombre entier |
float |
Nombre à virgule |
str |
Chaîne de caractères |
Pour convertir une donnée d'un type en une donnée d'un autre type, on utilise la fonction de conversion correspondante.
Parfois, la conversion est impossible. Dans ce cas, Python émet une erreur.
Conversion de type et entrées utilisateur
Lorsque l'on demande à l'utilisateur d'entrer une valeur, celle-ci est toujours une chaîne de caractères. Si l'on veut utiliser cette valeur comme un nombre, il faudra donc la convertir en nombre.
✎ Auto-évaluation
En Python, la valeur 1
est , alors que la valeur "1"
est .
Pour convertir une chaîne de caractères en nombre entier, on utilise la fonction . Au contraire, pour convertir un nombre en chaîne de caractères, on utilise la fonction .
✎ Auto-évaluation
L'opération +
sur les nombres correspond à
alors que l'opération +
sur les chaînes de caractères correspond à
.
✎ Auto-évaluation
Pour déterminer si un nombre est le multiple d'un autre, on utilise l'opérateur . En effet, lorsque l'on applique cet opérateur à deux nombres, on obtient lorsque le premier nombre est un multiple du second.
✎ Auto-évaluation
En Python, il y a deux valeurs possibles pour les booléens : . Les opérations de comparaison renvoient toujours .
Dans cette section, nous avons vu différents types de données disponibles en Python et comment les utiliser. Nous aurons l'occasion de voir d'autres types de données, tels que les tuples, les listes et les dictionnaires d'ici la fin de ce chapitre.
Dans la section suivante, nous allons voir comment définir et utiliser des variables en Python.