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
4538Raccourcis d'affectation
Python permet aussi de faire l'opération et de procéder immédiatement à sa réaffectation avec les opérateurs :
- x += 1est équivalent à- x = x + 1
- x -= 1est équivalent à- x = x - 1
- x /= 3est équivalent à- x = x / 3
- x *= 2est é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.Chaînes formatées
On peut aussi créer des chaînes en utilisant implicitement la concatenation en utilisant les chaines formatées (format-string ou encore f-string).
Par exemple :
>>> nom = "Carole"
>>> bonjour = f"Bonjour {nom} !"
>>> print(bonjour)
Bonjour Carole !Remarquez le f avant le début de la chaîne, il indique à python qu'il doit remplacer l'expression entre accolade par un objet. Si on oublie le f, on obtient une chaîne classique :
>>> nom = "Carole"
>>> bonjour = "Bonjour {nom} !"
>>> print(bonjour)
Bonjour {nom} !L'utilisation de chaînes formatées remplace une concaténation explicite :
>>> bonjour = "Bonjour " + nom + " !"
>>> print(bonjour)
Bonjour Carole !En étant bien plus lisible.
Attention, c'est bien une concaténation à la création de la chaîne. Une chaîne ne va pas se modifier magiquement lorsque l'on modifie une variable :
>>> nom = "Carole"
>>> bonjour = f"Bonjour {nom} !"
>>> print(bonjour)
Bonjour Carole !
>>> nom = "Dominique"
>>> print(bonjour)
Bonjour Carole !Enfin, comme les accolades sont une expression, on peut écrire ce genre de choses :
>>> réponse = f"La réponse universelle est {40 + 2}"
>>> print(réponse)
La réponse universelle est 42Et, enfin, si on veut écrire une accolade, on l'insère : f"{'{'}".
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"rendra- True
- "cou" in "coucou"rendra- True
- "cc" in "coucou"rendra- False
Booléens
Comparaisons
Comparateurs classiques :
- <: strictement plus petit
- <=: plus petit ou égal
- >: strictement plus grand
- >=: plus grand ou égal
- ==: égal
- !=: différent
- is: é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égation
- or: ou logique
- and: 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 yrendra :- xsi la représentation sous la forme d'un booléen de de- xest- True
- ysi la représentation sous la forme d'un booléen de de- xest- False
 
- x and yrendra :- ysi la représentation sous la forme d'un booléen de de- xest- True
- xsi la représentation sous la forme d'un booléen de de- xest- False
 
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 :
- Truesi un des deux paramètres est considéré comme vrai pour- or,- Falsesinon.
- Truesi un des les deux paramètres sont considérés comme vrai pour- and,- Falsesinon.
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 soit- Falsesi- x <= 0soit- log(x)sinon.
- ((x > 0) and log(x)) or Nonequi rendra soit- Nonesi- x <= 0soit- log(x)sinon