La condition IF et les boucles WHILE et FOR avec Python

  • Dernière modification de la publication :11 mars 2024
  • Temps de lecture :13 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 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 en l’associant avec la fonction range()

for variable in range(valeurs_possibles):
    instructions
Exercice 1 :  Avant d’exécuter ce code avec votre logiciel python préféré (Edupython ou Spyder… ou un neticiel comme trinket.ic), essayer de :
  • trouver le nombre de répétition effectué par la boucle FOR
  • trouver ce qu’affichera la console
for i in range(5):
    print("Phychiers")

Ce qu’affiche la console :

Phychiers

Phychiers

Phychiers

Phychiers

Phychiers

Exercice 2 : Avant d’exécuter le code ci-dessous, avec votre logiciel python préféré (Edupython ou Spyder…), essayer de :
  • trouver le nombre de répétition effectué par la boucle FOR
  • trouver ce qu’affichera la console.
Ce qu’affiche la console : 0 1 2 3 4

Pour python, le premier nombre est toujours 0 par défaut. Le chiffre 1 n’est que le deuxième.

Exercice 3 : Avant d’exécuter le code ci-dessous, essayer de :
  • trouver le nombre de répétition effectué par la boucle FOR
  • trouver ce qu’affichera la console.

Attention : il n’y a pas d’indentation (=décalage par rapport à la marge).

Usage pratique de la boucle FOR : On peut remplir des listes vides en utilisant la fonction append() ; rendez-vous sur la page web phychiers.fr/graphique-python-append qui explique comment elle fonctionne.
Exercice 4 : Essayer de trouver ce qu’affichera la console.
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 ]

Usage pratique de la boucle FOR : On peut « parcourir » une liste ; c’est à dire sortir les valeurs consignées dans une liste.

Exemple : Comment connaître une valeur dans une liste ?
liste = [ 0.1 , 0.2, 0.3 , 1 , 1.5, 2, 3.4 ]

print ( liste[2] )

Pour python, le premier nombre est toujours 0 par défaut. Le chiffre 1 n’est que le deuxième.

Exercice 5 : Essayer de trouver ce qu’affichera la console.
liste = [ 0.1 , 0.2, 0.3 , 1 , 1.5, 2, 3.4 ] 

print ( liste[5] )

Exercice 6 : Essayer de trouver ce qu’affichera la console.

Rappel : si vous ne vous souvenez plus de l’utilité de la fonction len() ; rendez-vous sur la page web phychiers.fr/graphique-python-len qui explique comment elle fonctionne.

liste = [0.1 , 0.2, 0.3 , 1 , 1.5, 2, 3.4 ]

for i in range( len(liste) ): 
    print ( liste[i] )

Ce qu’affiche la console :

0.1

0.2

0.3

1

1.5

2

3.4

Ce code permet de sortir une par une TOUTES les valeurs d’une liste. 

Travail noté n°3 : On peut aussi utiliser la fonction range() ainsi : range(valeur_min , valeur_max , écart )

Nous souhaitons créer les graduations pour un axe des abscisses d’un graphique. Nous voulons que les graduations aillent de 900 à 1000 et que leur écart soit de 10.

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

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.

Cet article a 2 commentaires

  1. taka junior

    je fais mais debut en python et j’ai beaucoup appri

    1. Alexis Chevrier

      Bonjour Taka Jr. Merci du retour. N’hésite pas à m’indiquer des pistes d’amélioration pour le site si tu veux. Bon apprentissage.

Laisser un commentaire