Page 5

Structure conditionnelle

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)

Disjonction des cas

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

Applications :

  1. Construire une fonction max2 qui renvoie le plus grand des deux nombres x et y.
  2. Construire une fonction max3 qui utilise la fonction max2 et qui renvoie le maximum de trois nombres.

Structures Répétitives conditionnelles (boucle while)

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.

    Le déroulement de la structure while est le suivant :
  1. On teste la condition
  2. Si la condition est vérifiée, on effectue les instructions contenues dans la structure, c'est à dire toutes les instructions indentées, puis on revient au début de la boucle. La condition est à nouveau testée.
  3. Si la condition n'est plus vérifiée, on sort de la boucle.

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.

Division euclidienne  :

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.




Page 5