Opérateurs et structures de contrôle Python

Objectif pédagogique : Maîtriser les opérateurs arithmétiques, de comparaison et d’affectation pour manipuler efficacement les données en Python

À la fin de ce chapitre, tu seras capable de…

  • Utiliser les opérateurs arithmétiques pour effectuer des calculs mathématiques
  • Appliquer les opérateurs de comparaison pour évaluer des conditions
  • Manipuler les opérateurs d’affectation pour optimiser l’écriture du code
  • Distinguer les différences entre assignation et comparaison
  • Résoudre des problèmes pratiques avec les opérateurs modulo et division entière

💡 Prérequis : Connaître les variables Python, les types de données de base et savoir utiliser la fonction print()

Mise en contexte

Vous voulez calculer combien de jours il faut pour parcourir 750 km à pied ? Déterminer si un nombre est pair ou impair ? Comparer des valeurs pour prendre des décisions ? Les opérateurs Python sont vos outils essentiels ! Tu découvriras comment transformer des calculs complexes en quelques lignes de code élégantes.

1 – Les opérateurs et les structures de contrôle

1.1 – Les opérateurs

Un opérateur est un symbole qui effectue une opération sur des variables et des valeurs. Python prend en charge plusieurs types d’opérateurs tels que :

Les opérateurs arithmétiques

Les opérateurs arithmétiques sont utilisés pour effectuer des opérations mathématiques entre deux opérandes.

Opérateur Signification
+ Addition
Soustraction
* Multiplication
/ Division
% Modulo (reste)
** Puissance
// Division entière

La division entière // correspond à compter le nombre de fois que le nombre de droite peut diviser entièrement le nombre de gauche. Par exemple, 5 // 2 vaut 2 car 2 peut entrer 2 fois dans 5. L’opérateur modulo % permet d’obtenir le reste de la division entière entre 2 nombres. Par exemple, 5 % 2 vaut 1 car 5 est divisible par 2 deux fois et il reste 1. L’opérateur % est utile pour savoir si un nombre est pair ou impair. En effet, si un nombre n est pair, alors nécessairement n % 2 vaut 0. De même, si n est impair, alors n % 2 vaut 1.

Exemple :

Créer la variable distance et lui assigner la valeur 340 km.

Créer la variable vitesse et lui assigner la valeur 4.5 km/h.

distance = 750 # Vitesse moyenne en km/h

vitesse = 4.5 # Temps en heures

temps = distance / vitesse # Nombre de jours

jours = temps // 24 # Nombre d’heures restantes

heures_restantes = temps % 24

Les opérateurs de comparaison

Les opérateurs de comparaison permettent de comparer deux valeurs et retournent un booléen (True ou False).

Opérateur Signification
== Égale à
!= Différent de
> Supérieur à
< Inférieur à
>= Supérieur ou égal à
<= Inférieur ou égal à

Exemple :

x, y = 3, 5

# Est-ce que x est plus petit que y ?

print(x < y)

Résultat attendu : True

# Est-ce que x est égal à y?

print(x == y)

Résultat attendu : False

💡 À retenir : IL NE FAUT PAS CONFONDRE x == y avec x = y. x == y est une comparaison tandis que x = y est une assignation.

👉 Exercice :

1 – En une ligne de code, déterminer par une valeur booléenne si 7 divise 3**7 + 2**14. Comme sur une calculatrice, vous pouvez utiliser des parenthèses pour définir les priorités d’opération.

2 – Déterminer maintenant si 7 divise 3**(2*n + 1) + 2**(4*n + 2) pour n = 4; 5 et 10.

Les opérateurs d’affectation ou d’assignation

Les opérateurs d’affectation sont utilisés pour assigner des valeurs à des variables.

Opérateur Signification
= Affectation simple
+= Addition et affectation
-= Soustraction et affectation
*= Multiplication et affectation
/= Division et affectation
**= Exponentiation et affectation
//= Division entière et affectation
%= Modulo et affectation

Exemple :

On choisit un nombre premier différent de 2 et 3. On l’élève au carré. On lui ajoute 17. On le divise par 12 et on garde le reste de cette division, alors le reste de cette division vaut 6.

# Prenons les 12 nombres premiers plus petits différents de 2 et 3.

nombres_premiers = [5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43]

# Prenons un nombre premier au hazard

x = nombres_premiers[5]

Nous pouvons choisir un nombre au hasard dans la liste nombres_premiers en important le module random (nous allons voir en détail comment importer et utiliser les modules python) :

# import du module random

import random

# Sélectionner un nombre au hasard en utilisant la fonction choice du module random

x = random.choice(nombres_premiers)

# On élève x au carré

x **= 2 # c’est la même chose que x = x**2

# On ajoute 17 à x

x += 17 # c’est la même chose que x = x + 17

# On garde le reste de la division entière de x par 12

x %= 12 # c’est la même chose que x = x % 12

print(x)

Résultat attendu : 6

Les opérateurs d’appartenance

Les opérateurs d’appartenance sont utilisés pour tester si une séquence contient une certaine valeur.

Opérateur Signification
in Est dans
not in N’est pas dans

Exemple :

une_liste = [1, 3, 102, 32, 11, -12, 33]

x = 14

# Est-ce que la valeur de x fait partie des valeurs de une_liste ?

print(x in une_liste)

Résultat attendu : False

# Est-ce que la valeur de x ne fait PAS partie des valeurs de une_liste ?

print(x not in une_liste)

Résultat attendu : True

Les opérateurs logiques

Les opérateurs logiques sont utilisés pour combiner des expressions conditionnelles.

Opérateur Signification
and ET logique
or OU logique
not NON logique

Exemple :

Typiquement, lorsque nous avons plusieurs expressions booléennes, les opérateurs logiques permettent de déterminer si toutes les expressions sont vraies ou au moins une des expressions est vraie.

x, y = 3, 5

expression1 = (x > y)

expression2 = (y % x == 0)

# Est-ce que les deux expressions sont vraies ?

print(expression1 and expression2)

Résultat attendu : False

# Est-ce que au moins une des expressions est vraie ?

print(expression1 or expression2)

Résultat attendu : True

L’opérateur not permet d’obtenir la négation d’une expression.

Exemple :

expression = (y%x == 0)

# Est-ce que y est divisible par x ?

print(expression)

Résultat attendu : False

# Est-ce que y n’est PAS divisible par x ?

print(not expression)

Résultat attendu : True

👉 Exercice : Subvention pour projets environnementaux

Le gouvernement a mis en place un programme de subvention pour encourager les entreprises à lancer des projets en faveur de l’environnement. Cependant, les critères d’éligibilité à cette subvention ne sont pas toujours clairs. D’après les informations disponibles, une entreprise peut recevoir une subvention de 5000€ si elle respecte certains critères en fonction de son ancienneté et du budget alloué au projet.

Critères d’éligibilité :

  • L’entreprise a moins de 3 ans d’ancienneté et le budget du projet est strictement inférieur à 20 000 euros.
  • L’entreprise a entre 3 et 7 ans d’ancienneté et le budget du projet est compris entre 20 000 et 50 000 euros.
  • L’entreprise a plus de 7 ans d’ancienneté et le budget du projet est strictement inférieur à 15 000 euros ou supérieur à 60 000 euros. Une entreprise avec plus de 7 ans d’ancienneté et un budget entre 15 000 et 60 000 euros ne peut pas toucher cette subvention.

Scénario :

  • Entreprise A a 8 ans d’ancienneté et un budget de projet de 65 000 euros.
  • Entreprise B a 5 ans d’ancienneté et un budget de projet de 18 000 euros.

Déterminer à l’aide d’expressions logiques si l’une des deux entreprises peut toucher à la subvention.

Pour cela :

  • Créez deux variables anciennete et budget.
  • Évaluez les 3 critères de décision en fonction de ces deux