Opérations sur les objets
Les opérations sur les objets vont des opérations arithmétiques (a + b, a - b, ...) aux tests (a < b) en passant par les opérations logiques (a et b).
Utilisez la console de https://console.basthon.fr/ pour exécuter les divers exemples et exercices
Nombres
Les opérations peuvent s'effectuer sur les trois types numériques que sont les entier (classe int
), les réels (classe float
) et les complexes (classe complex
)
Opérateurs
Outre les classiques opérations :
+
(addition)-
(soustraction)/
(division)*
(multiplication)
python possède aussi :
//
division entière%
reste de la division**
exposant.
Que vaut le quotient et le reste de la division entière de 4538 par 23 ?
solution
solution
>>> 4538 // 23
197
>>> 4538 % 23
7
>>> (4538 // 23) * 23 + 7
4538
Raccourcis d'affectation
Python permet aussi de faire l'opération et de procéder immédiatement à sa réaffectation avec les opérateurs :
x += 1
est équivalent àx = x + 1
x -= 1
est équivalent àx = x - 1
x /= 3
est équivalent àx = x / 3
x *= 2
est équivalent àx = x * 2
Chaînes de caractères
Trois opérateur sont courants pour les chaînes de caractères :
- la concaténation avec l'opérateur
+
- la multiplication avec l'opérateur
*
- test de présence avec l'opérateur
in
Concatenation et multiplication
Les chaînes de caractères possèdent 2 opérateurs :
- l'addition qui concatène deux chaînes
- la multiplication d'un entier $i$ par une chaîne $c$ qui concatène $i$ fois $c$ à elle même.
Par exemple :
>>> "x" + "y"
'xy'
>>> 3 * "x"
'xxx'
Recopiez 10 fois : "j'aime bien faire du python"
en une ligne de python
solution
solution
On peut écrire :
>>> 10 * "J'aime bien faire du python. "
"J'aime bien faire du python. J'aime bien faire du python. J'aime bien faire du python. J'aime bien faire du python. J'aime bien faire du python. J'aime bien faire du python. J'aime bien faire du python. J'aime bien faire du python. J'aime bien faire du python. J'aime bien faire du python. "
Affectez la chaîne de caractères "j'aime bien faire du"
à la variable x
. Puis ajoutez " python"
à x
en une ligne de python
solution
solution
On peut écrire :
>>> x = "J'aime bien faire du"
>>> x += " python."
>>> print(x)
J'aime bien faire du python.
Test de présence
Une chaîne de caractère peut être vue comme un conteneur (ordonné) de caractères. Savoir si un caractère ou une sous-chaîne est présent dans une chaîne peut se faire alors avec l'opérateur in
, qui rend un booléen :
"c" in "coucou"
rendraTrue
"cou" in "coucou"
rendraTrue
"cc" in "coucou"
rendraFalse
Booléens
Comparaisons
Comparateurs classiques :
<
: strictement plus petit<=
: plus petit ou égal>
: strictement plus grand>=
: plus grand ou égal==
: égal!=
: différentis
: égalité d'objets (en pratique uniquement utilisé pour comparer àNone
)
Les comparaisons rendent un booléen. Par exemple : 2 <= 3
rend le booléen True
.
Opérations logiques
not
: négationor
: ou logiqueand
: et logique
Notez que les opérateurs logiques s'appliquent à tous les objets, python va comparer leurs représentations sous la forme de booléen. Par exemple
not 2
va rendre True
(l'entier 2 est True
représenté comme un booléen).
De même, les opérateurs or
et and
vont rendre des objets comparé, dont les représentation binaires correspondent aux opérateurs logiques :
x or y
rendra :x
si la représentation sous la forme d'un booléen de dex
estTrue
y
si la représentation sous la forme d'un booléen de dex
estFalse
x and y
rendra :y
si la représentation sous la forme d'un booléen de dex
estTrue
x
si la représentation sous la forme d'un booléen de dex
estFalse
Cela ne change rien à l'utilisation classique des opérations logiques puisque la représentation sous forme de booléen de l'objet rendu est conforme à ce qu'on attend :
True
si un des deux paramètres est considéré comme vrai pouror
,False
sinon.True
si un des les deux paramètres sont considérés comme vrai pourand
,False
sinon.
AND/OR trick
Python a choisi cette façon de faire pour permettre des notations abrégées comme :
(x > 0) and log(x)
qui rendra soitFalse
six <= 0
soitlog(x)
sinon.((x > 0) and log(x)) or None
qui rendra soitNone
six <= 0
soitlog(x)
sinon