Prépa Python

Basique — chapitre 10 sur 54

Opérateurs et calculs

Arithmétiques, comparaison, logiques et priorités

55 min10 évaluations

Les opérateurs sont les outils de calcul de Python. Ce chapitre couvre les trois grandes familles : arithmétiques (pour les nombres), de comparaison (pour tester), logiques (pour combiner des conditions). On termine par les opérateurs d'affectation combinée, très courants au TOSA.

Les opérateurs arithmétiques

Python dispose des opérateurs mathématiques classiques, plus quelques ajouts utiles :

Opérateur Nom Exemple Résultat
+ Addition 3 + 2 5
- Soustraction 5 - 2 3
* Multiplication 3 * 4 12
/ Division réelle 7 / 2 3.5
// Division entière 7 // 2 3
% Modulo (reste) 7 % 2 1
** Puissance 2 ** 10 1024

Démonstrations :

python
print("Addition       :", 3 + 2)
print("Soustraction   :", 10 - 3)
print("Multiplication :", 4 * 5)
print("Division       :", 7 / 2)
print("Division entière:", 7 // 2)
print("Modulo         :", 7 % 2)
print("Puissance      :", 2 ** 10)

Le cas négatif de //

La division entière // tronque vers le bas (vers moins l'infini), pas vers zéro :

python
print(7 // 2)     # 3
print(-7 // 2)    # -4, PAS -3 !

L'opérateur modulo %

Le modulo renvoie le reste de la division entière. Très utile pour :

  • Tester la parité : n % 2 == 0 → n est pair.
  • Cycler : i % 7 → donne toujours un nombre entre 0 et 6.
  • Repérer un multiple : n % 5 == 0 → n est multiple de 5.
python
print(10 % 2)        # 0 : 10 est pair
print(7 % 2)         # 1 : 7 est impair
print(7 % 2 == 0)    # False : le test de parité
print(15 % 5 == 0)   # True : 15 est un multiple de 5

Priorité des opérateurs

Les règles sont celles des mathématiques :

  1. Parenthèses ()
  2. Puissance **
  3. *, /, //, %
  4. +, -

En cas de doute, mettez des parenthèses.

python
# Sans parenthèses
print(2 + 3 * 4)        # 14, pas 20

# Avec parenthèses
print((2 + 3) * 4)      # 20

Les opérateurs d'affectation combinée

Quand on veut modifier la valeur d'une variable par rapport à sa valeur actuelle, on peut utiliser des raccourcis :

Opérateur Équivalent Exemple
+= x = x + v x += 5
-= x = x - v x -= 3
*= x = x * v x *= 2
/= x = x / v x /= 4
//= x = x // v x //= 3
%= x = x % v x %= 10
**= x = x ** v x **= 2

Exemple d'utilisation :

python
compteur = 0
compteur += 1       # compteur vaut maintenant 1
compteur += 1       # compteur vaut maintenant 2
compteur += 5       # compteur vaut maintenant 7
print(compteur)
python
prix = 100
prix *= 1.20        # applique une majoration de 20%
print(prix)

Les opérateurs de comparaison

Ces opérateurs renvoient toujours un booléen (True ou False).

Opérateur Signification Exemple Résultat
== Égal à 3 == 3 True
!= Différent de 3 != 4 True
< Strictement inférieur 3 < 5 True
> Strictement supérieur 5 > 3 True
<= Inférieur ou égal 3 <= 3 True
>= Supérieur ou égal 3 >= 4 False
python
age = 18
print("Majeur ?", age >= 18)
print("Mineur ?", age < 18)
print("Pile 18 ?", age == 18)

Comparaisons chaînées

Python permet d'écrire des comparaisons à la façon mathématique :

python
age = 25
# Python autorise 18 <= age < 65 (plus lisible)
if 18 <= age < 65:
    print("Adulte actif")

C'est équivalent à age >= 18 and age < 65 mais bien plus lisible. Cette syntaxe est spécifique à Python — elle n'existe pas dans la plupart des autres langages.

Les opérateurs logiques

Ces opérateurs combinent des booléens :

Opérateur Sens Exemple
and ET logique True and False → False
or OU logique True or False → True
not NON logique (inverse) not True → False

Table de vérité :

python
print("and :")
print(" T and T =", True and True)
print(" T and F =", True and False)
print(" F and F =", False and False)

print("or :")
print(" T or T =", True or True)
print(" T or F =", True or False)
print(" F or F =", False or False)

print("not :")
print(" not T =", not True)
print(" not F =", not False)

Usage typique :

python
age = 25
permis = True

peut_conduire = age >= 18 and permis
print("Peut conduire :", peut_conduire)

Court-circuit (lazy evaluation)

Important pour le TOSA : Python évalue les opérateurs and et or en court-circuit :

  • A and B : si A est False, B n'est même pas évalué (c'est déjà False).
  • A or B : si A est True, B n'est même pas évalué (c'est déjà True).

Exemple pratique : éviter une division par zéro.

python
x = 0
# Si x == 0, la deuxième partie N'EST PAS évaluée, donc pas de ZeroDivisionError
if x != 0 and 10 / x > 2:
    print("OK")
else:
    print("x vaut zéro ou le quotient est petit")

L'opérateur in

in teste si un élément appartient à une collection (liste, tuple, chaîne, ensemble, dictionnaire).

python
print("a" in "abc")                  # True
print(3 in [1, 2, 3])                # True
print("nom" in {"nom": "Alice"})     # True (regarde les clés du dict)
print(5 in (1, 2, 3))                # False

Son contraire : not in.

python
print("z" not in "abc")        # True

On reviendra longuement sur in dans les chapitres sur les structures de données.


Exercices

quiz 01.02.q1réponse unique
Que renvoie 10 / 2 ?
quiz 01.02.q2réponse unique
Que vaut 17 % 5 ?
quiz 01.02.q3réponse unique
Que vaut x après ce code ?
x = 10
x **= 2
quiz 01.02.q4réponse unique
Que renvoie True and False or True ?
quiz 01.02.q5réponse unique
Que renvoie 3 < 5 < 10 ?
quiz 01.02.q6réponse unique
Que renvoie -7 // 2 ?
quiz 01.02.q7réponse unique
Que s'affiche-t-il ?
x = 5
print(x > 0 and x < 10)

exercice 01.02.x1à faire

Un produit coûte 150 € HT (prix_ht). Calculez et affichez :

  1. Le montant de la TVA à 20 % (taux_tva), rangé dans la variable tva.
  2. Le prix TTC, rangé dans la variable prix_ttc.

exercice 01.02.x2à faire

Calculez le booléen est_pair, qui vaut True si l'entier nombre est pair et False sinon.

Indice : un nombre est pair si son reste par 2 vaut 0 — et une comparaison renvoie déjà un booléen.


exercice 01.02.x3à faire

Une durée duree est donnée en secondes. Écrivez un programme qui la décompose en heures, minutes, secondes, rangées dans les variables heures, minutes et secondes.

Par exemple, pour 3725 secondes, on veut afficher : 1 h 2 min 5 s.

Indice : utilisez // et %.


À retenir