La condition IF et les boucles WHILE et FOR avec Python

  • Dernière modification de la publication :7 juin 2023
  • Temps de lecture :10 min de lecture
  • Post category:Lycée

Python est un langage de programmation très populaire dans les écoles et les entreprises. Comme tous les autres langages, il utilise des boucles qui permettent d’automatiser des tâches. Allier à la puissance des machines, des millions de calculs sont alors possibles en une seconde.

La condition IF ou Si

En Python, la condition IF, qui signifie SI ET SEULEMENT SI, va nous permettre d’exécuter une ou des instructions à une certaine condition. Une condition est souvent une comparaison entre 2 nombres. Exemple :
  • SI 3 > 2 : ceci est vrai alors python exécutera les instructions.
  • SI 2 > 3 : ceci est faux alors python ignorera les instructions.

Regardons avec l’exemple simple ci-dessous la logique de la condition IF. 

Avant d’exécuter ce code avec votre logiciel python préféré (Edupython ou Spyder…), essayer de trouver ce qu’affichera la console.

# Déclaration des variables
x = 1      # On stocke le chiffre 1 avec la variable x
y = 3      # On stocke le chiffre 3 avec la variable y

if x > y:
    print(x, " est supérieur à ", y)

else:
    print(x, " est inférieur à ", y)

Ce qu’affiche la console : 1 est inférieur à 3

Explication – Lors de l’exécution, le logiciel va lire :

La 1ière ligne : Python ne prend pas en compte ce qui suit les # : ce sont des commentaires destinés aux développeurs. 

2ème ligne : il stocke 1 avec x

3ème ligne : il stocke 3 avec y

4ème ligne : rien ne se passe.

5ème ligne, python va tester la condition : SI 1 > 3 alors on affichera dans la console « 1 est supérieur à 3 » ; ceci est faux. Donc python n’exécutera pas cette instruction.

Le programme va donc sauter cette condition et la ligne indentée (retrait de tabulation) pour passer à la suite.

else veut dire « sinon » OU « Si la (ou les) condition précédente est fausse alors j’exécute mes instructions ». Ici : afficher dans la console que « 1 est inférieur à 3 ». 

Conseils à retenir lorsque nous écrivons une condition IF :

  • Il faut que la ligne avec la condition se termine par deux points “:
  • Il faut que les instructions soient indentées (= retrait de tabulation)
  • On peut aussi ajouter plusieurs « sinon » (elif, else) :
if condition:
    instruction

elif condition:
    instruction

else:
    instruction
  • Il est possible d’ajouter 2 conditions : if condition1 and condition2:
if condition1 and condition2:
    instruction

else:
    instruction

Exercice d’entrainement :

En vous inspirant du code précédent (=garder ce code et changer les variables ainsi que les textes à afficher) et des conseils, écrire le code respectant les points suivants :

  • Choisissez une certaine température. Soit vous l’écrivez directement dans le code, soit vous demandez à l’utilisateur de rentrer une valeur de température (utilisation de la fonction input() ).
  • Si la température est supérieure à 20°C : nous afficherons dans la console que nous pouvons sortir de chez nous en tenue d’été.
  • Si la température est inférieure à 7°C : nous afficherons dans la console que nous sommes en hiver ou que nous devons porter un manteau.
  • Sinon : nous afficherons dans la console que le temps est normal.
# On demande à l'utilisateur de rentrer une température
T = float( input("Quelle est la température ? ") )
if T > 20: print ("Nous pouvons sortir en T-shirt") elif T < 7: print("Nous devons sortir en blouson") else: print("Temps normal")

Travail noté n°1 : Ecris le code qui permet : 

  • de demander l’âge d’une personne
  • d’afficher dans la console si une personne est un enfant, ou un adolescent, ou une personne est un adulte

Travail noté n°1 bis :

Un cinéma pratique trois types de tarifs pour deux personnes : 

  • si les deux personnes sont mineures, elles payent 7€ chacune,
  • si l’une seulement est mineure, elles payent un tarif de groupe de 15€,
  • si les deux personnes sont majeures, elles payent 18 € en tout.

Écris un programme qui :

  • Demande l’âge de chacune des personnes,
  • Affiche dans la console le prix à payer.

La boucle While ou Tant que

En Python, la boucle WHILE permet de répéter des instructions plusieurs fois, tant qu’une condition est vraie

Regardons avec l’exemple simple ci-dessous la logique de la boucle WHILE.  Avant d’exécuter ce code avec votre logiciel python préféré (Edupython ou Spyder…), essayer de trouver ce qu’affichera la console.
x = 1

while x < 5:
    print(x)
    x = x + 1

Ce qu’affiche la console : 

1

2

3

4

Explication – Lors de l’exécution, le logiciel va lire :

La 1ière ligne : il stocke 1 avec x.

2ème ligne : rien

3ème ligne : python va commencer la boucle : tant que x < 5 (ce qui est vrai), j’exécute les instructions indentées.

4ème ligne : il affiche dans la console : 1 (car x a stocké 1)

5ème ligne : on va stocker une nouvelle valeur pour x (2 car 1+1).

Au bout des instructions indentées, on revient au début de la boucle while et on reteste la condition : 2 < 5 ?  Vrai. On réexécute les instructions indentées. Etc…

Conseils à retenir lorsque nous écrivons une boucle WHILE :

  • Il faut que la ligne WHILE se termine par deux points “:
  • Il faut que les instructions soient indentées (= retrait de tabulation)
Exemple simple : Tenter de trouver ce qu’affichera la console suite à l’exécution de ce code. Attention : l’indentation pour la fonction print() a disparu : elle est sortie de la boucle.
x = 1

while x < 5:
    x = x + 1

print(x)

Exercice d’entrainement :

Chaque année la consommation énergétique d’un data center est estimée augmentée de 8 %.

En vous inspirant du code précédent, écrire le programme qui permet de :

  • Déterminer le nombre d’années nécessaires au doublement de la consommation énergétique de ce data center.
conso_année_1 = 1000
conso_double = conso_année_1 * 2
conso = conso_année_1
année = 0

while conso < conso_double:
    conso = conso + conso * 0.08
    année = année + 1    # Cette ligne permet de compter les années

print ("Avec une consommation annuelle de ", conso_année_1 , "watts",
print ("Et une augmentation de 8%" )
print ("La consommation sera doublera au bout de ", année, " années.")

Travail noté n°2 :

Lorsque l’utilisateur saisit une donnée, il peut être utile de vérifier qu’elle est conforme à ce qu’on attend de lui.

  • Proposer un programme qui demande à l’utilisateur de rentrer un nombre positif ; utiliser la fonction input().
  • Compléter ce programme afin de demander à l’utilisateur de saisir un nouveau nombre si le nombre entré ne correspond pas à la demande.
  • Modifier le programme précédent pour limiter la répétition à au plus 4 demandes successives.
  • Rajouter un message d’arrêt si l’utilisateur « s’obstine » à saisir un nombre strictement négatif.

La boucle FOR

En Python, quand on connaît le nombre de répétition d’une boucle (ou itérations) à l’avance, la boucle FOR permet d’éviter d’écrire plusieurs fois les mêmes instructions. La syntaxe est la suivante :

for variable in valeurs_possibles:
    instructions

Remarque : La fonction range() s’utilise souvent avec la boucle FOR. Elle permet de définir le nombre de fois qu’une boucle FOR va être répétée.

Regardons avec l’exemple simple ci-dessous la logique de la boucle FOR.  Avant d’exécuter ce code avec votre logiciel python préféré (Edupython ou Spyder…), essayer de trouver ce qu’affichera la console.
for i in range(5):
    print(“Phychiers”)

Ce qu’affiche la console :

Phychiers

Phychiers

Phychiers

Phychiers

Phychiers

Exemple simple :

Avant d’exécuter ce code avec votre logiciel python préféré (Edupython ou Spyder…), essayer de trouver ce qu’affichera la console.

for i in range(5):
    print(i)

Ce qu’affiche la console :

0

1

2

3

4

Remarque : pour python, le premier nombre est toujours 0. Le chiffre 1 n’est que le deuxième.

Utilité de la boucle FOR : On peut créer et remplir des listes générées avec la boucle FOR. Pour comprendre la fonction append(), rendez-vous sur la page web phychiers.fr/graphique-python-append qui explique comment elle fonctionne.
liste = [ ]   # On crée une liste vide

for i in range(5): 
    liste.append(i)

print(liste)

Ce qu’affiche la console : [0, 1, 2, 3, 4]

Travail noté n°3 : Nous souhaitons créer les graduations pour l’axe des abscisses d’un graphique. Nous savons que les graduations vont de 900 à 1000 et que leur écart est de 10.

  • Afficher dans la console la liste avec l’ensemble des graduations de l’axe des abscisses.

Aide : Pour y parvenir, il faut utiliser la fonction range() ainsi : range(valeur_min , valeur_max , écart )

Laisser un commentaire