Structures conditionnelles
Maintenant que nous sommes à l'aise avec le début du code, voyons la suite :

Ligne 20 : while n_Mno4[-1]>= 0 and n_Ferreux[-1]>=0
Ce qui a été mis en gras va maintenant être traité, il s'agit de ce qui va tourner autour des conditions et de la logique.
Booléen
Un nouveau type de donnée est nécessaire pour parler logique, le booléen.
Il s'agit d'une variable qui prend deux états : vrai ou faux
Sur Python, il s'agit des mots Trueet False. Ce sont des mots réservés par python, vous ne pouvez donc pas nommer une variable avec par exemple.
En pratique, on ne va pas les utiliser explicitement, on le fera au travers de conditions qui permettront de vérifier si c'est "VRAI" ou "FAUX", et le traitement sera fait en fonction de la réponse.
IF....ELIF...ELSE...
IFpermet de vérifier une condition :
Un exemple plus parlant :
La structure se combien avec les opérateurs de comparaison :
Et aussi avec les opérateurs logiques : "AND" et "OR"
Enfin, il existe une variante de IF / ELSE qui ajoute le "ELIF". C'est la contraction de "ELSE IF" et permet de tester des conditions en série à la suite les unes des autres. Dès qu'une condition est vraie, le code de la 1ère condition vérifiée s'execute.
Une liste est générée à partir de 2 variables 'a' et 'b'. Vous devez définir une fonction qui prend en paramètre la liste et retourne le plus grand nombre des deux. Si les nombres sont égaux, afficher un message de votre choix.
WHILE
While est visible dans l'extrait des E3C. Littéralement, elle signifie "tant que ..." et s'utilise ainsi :
L'instruction 'faire' s’exécute tant que la condition est vérifiée. C'est une boucle.
Attention : Si aucune condition de sortie n'est possible, le programme tourne indéfiniment ! C'est une boucle infinie. Le programme va planter.
Exemple
la condition "a < b" est vrai (1<5), on entre dans la boucle, et le code s’exécute. Puis 'a' est incrémenté, la condition reste vraie, etc... On obtient :
Quand a = 5, la condition est fausse, on n'entre pas dans la boucle. C'est pour cela que la valeur 5 ne s'affiche pas.
Ici on entre dans la boucle, mais 'a' n'est pas incrémenté. La condition est toujours vraie. Le programme va tourner en boucle.
C'est utile dans certains cas (on peut alors écrire "while True :" qui revient au même).
En physique, et souvent en Python d'ailleurs, on préférera utiliser une autre façon de boucler : la boucle FOR
FOR
FOR permet de boucler en réalisant des itérations sur une séquence donnée. Plus simplement, on utilise FOR quand on travaille sur un nombre de boucles fini, connu à l'avance. Par exemple quand on travaille sur une liste.
La boucle for s’exécute ainsi :
L’instruction est plus complexe, alors prenons un exemple :
Parcours d'une liste avec FOR
Une façon élégante de parcourir une liste est d'utiliser la fonction range(nombre)
range(n) permet en effet de construire une liste de 0 à n-1. Ça tombe bien, les indices des éléments d'une liste de n éléments vont de 0 à n-1
Interprétation :
range(n) va construire une liste qui être parcourue dans la boucle. Cette liste sera temporaire en mémoire (on peut la conserver en affectant une variable : liste_range = list(range(n)) et sera [0,1,2,3,4,5]
for i in range(n) signifie que pour chaque donnée "i" de cette liste, et il y en a 6, on va effectuer une action. On va également récupérer la valeur du "i".
Pour le premier cycle de la boucle, i = 0, on va donc afficher : liste[0]=21.
On se sert du "i" pour l'affichage, et aussi pour aller extraire les données de "liste" qui peuvent être lues par liste[0], liste[1], ...
On dispose de 3 listes contenant pour le nom des points, les abscisses et les ordonnées. On veut extraire les données et les afficher ensemble.
On souhaite obtenir un affichage type mathématique :
Dans l'idée, on comprend ici qu'il va falloir exécuter la même instruction sur l'ensemble des listes. Donc des boucles.
S'agissant de listes (= contenu fini, nombre de boucles prévisibles) on utilisera la boucle for
L'instruction sera une extraction de donnée, et une mise en forme pour l'affichage
On va devoir dire au programme "Affiche la 1ere donnée de la liste "nom" et de la liste "abscisse" et de la liste "ordonnée". Puis affiche la 2ème, etc...
On aura également besoin de se servir de fonctions liées aux listes, notamment qui donne la longueur d'une liste, et range(nombre) qui va permettre de générer une liste de nombre pour parcourir les 3 listes.
Quand le programme est fonctionnel, transformer en fonction, c'est plus pratique.
Remarque : Dans la définition d'une fonction, on peut spécifier les valeurs par défaut des paramètres.
Quand c'est fait, proposer une amélioration, qui demandera à l'utilisateur le nombre de points qu'il souhaite afficher (ils seront affichés dans l'ordre)
Last updated
Was this helpful?