Sous Python, la structure conditionnelle se code de la manière suivante.
def vabs(x): #Fonction valeur absolue if x>=0: #Une première indentation return x #Une deuxième indentation else: return -x
Attention : Ici les indentations sont obligatoires. Elles permettent de délimiter chaque bloc d'instructions et favorise une bonne lecture du programme.
Les structures conditionnelles utilisent des opérateurs de comparaison. Ils sont au nombre de 8. En voici la liste.
x == y #x est égal à y x != y #x est différent de y x > y #x est strictement supérieur à y x < y #x est strictement inférieur y x >= y #x est supérieur ou égal à y x <= y #x est inférieur ou égal à y x is y #id(x)=id(y) x in y #x appartient à y (voir les listes)
Ils permettent d'obtenir des variables booléennes que l'on peut combiner à l'aide d'opérateur booléens : or (ou) ; and (et) ; not (non)
Voici deux manières d'imbriquer deux structures conditionnelles
def nb_sol1(a, b, c): if a==0: print('L\'équation est du premier degré') else: delta=b**2-4*a*c if delta>0: print('L\'équation a deux solutions réelles') else: if delta==0: print('L\'équation a une solution réelle') else: print('L\'équation n\'a pas de solution réelle') |
def nb_sol2(a, b, c): delta=b**2-4*a*c if a == 0: print('L\'équation est du premier degré') elif delta > 0: print('L\'équation a deux solutions réelles') elif delta == 0: print('L\'équation a une seule solution') else: print('L\'équation n\'a pas de solution réelle') |
elif est une abréviation de else if
Commençons par étudier la structure while
def division(a,b): n=0 if a < b : print(' Le premier nombre doit être supérieur ou égal au deuxième ') return None else: while a>=b: n+=1 a=a-b return n
Remarque : return None permet d'interrompre la lecture des instructions de la fonction sans renvoyer de valeurs.
Attention aux boucles infinies : il ne faut pas oublier de prévoir la modification de la condition sinon on reste indéfiniment dans la structure while. En python, pour interrompre un programme pris dans une boucle infinie, il suffit de taper sur Ctrl + C.
Reste de la division euclidienne | Recherche du pgcd de deux nombres |
def reste(a,b): if a < b : print('Le premier nombre doit être supérieur ou égal au deuxième') return None if b==0: print('Division interdite') else: if b!=0: while a>=b: a=a-b return a |
def pgcd(a,b): while b>0: a, b=b,reste(a,b) return a |
On remarque que pour que le programme de droite fonctionne, il faut d'abord coder le programme de gauche.
Application à ne pas faire si vous n'êtes pas professeur de mathématiques :
Programmer l'algorithme donné dans l'exercice 1 du sujet du bac métropole Juin 2017 (Série S)
Variables : t est un nombre réel positif S est un réel strictement compris entre 0 et 1 Initialisation : Saisir S t prend la valeur 0 Traitement : Tant Que 1-(1+t)/exp(t)< S t prend la valeur t+1 Fin Tant Que Sortie : Afficher |
Avant de passer à l'étude de la structure répétitive inconditionnelle, nous allons tout d'abord nous intéresser aux listes.