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 :

if condition:
    code si la condition est vrai
    else :
    code si la condition est fausse

Un exemple plus parlant :

a = int(input("entrer un entier"))

if a > 3:         #Si a est strictement supérieur à 3, faire..."
    print("a est strictement supérieur à 3")
else :            #Sinon, faire..."
    print("a n'est pas strictement supérieur à 3")

La structure se combien avec les opérateurs de comparaison :

==      égal à 
!=      différent de (fonctionne aussi avec )
>       strictement supérieur à 
>=      supérieur ou égal à
<       strictement inférieur à 
<=      inférieur ou égal à

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.

a = int(input("entrer un entier"))

if a > 3:     #Si a est strictement supérieur à 3, faire..."
    print("a est strictement supérieur à 3")
elif a <1 :    #Sinon, vérifier si a est inférieur à 1, et si oui faire..."
    print("a est strictement inférieur à 1")
else :         #Sinon, ...
    print("a est compris dans l'interval [1;3] ")

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.

#Variables de départ
a = ...
b = ...

#On créer une liste contenant a et b
liste = 

#fonction de comparaison. La fonction prend en paramètre la liste des deux nombre, 
#et retourne le plus grand. Si égalité, affiche un message
def plusGrand(liste):

WHILE

While est visible dans l'extrait des E3C. Littéralement, elle signifie "tant que ..." et s'utilise ainsi :

while condition :
    Faire

L'instruction 'faire' s’exécute tant que la condition est vérifiée. C'est une boucle.

Exemple

a = 1
b = 5

while a<b :
    print(a)
    a += 1

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 :

1
2
3
4

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.

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 :

for element in sequence:
    instruction

L’instruction est plus complexe, alors prenons un exemple :

liste = ["a","b","c","d","e","f"]
for element in liste : #Pour chaque element (=donnée) de la liste
    print(element) #imprimer l'élement(=donnée)

Remarque : On a nommé element les données de la liste. On peut les appeler comme on veut "i", "var", "truc" ...

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

liste = [21,541,11,84,1061,15]
n = len(liste) # n=6
for i in range(n) : # construit une liste [0,1,2,3,4,5] et la parcours
    print("liste["+str(i)+"]="+str(liste[i]))

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.

nom = ["A","B","C","D","E","F"]
x = [10,22,35,49,68,79]
y = [45,78,95,105,442,887]

On souhaite obtenir un affichage type mathématique :

Le point A(10;45)
Le point B(22;78)
...

Last updated

Was this helpful?