Les exécutions conditionnelles

Sélection conditionnelle

Il s'agit d'aiguiller les actions en fonction de certaines données, de certaines circonstances.

Un premier exemple :

		Si n est pair alors afficher("n est pair")
		sinon afficher("n est impair")
		

n=int(input("Entrez un entier : "))
if n%2 == 0 :
	print("{} est pair".format(n))
else :
	print("{} est impair".format(n))
  • L'indentation après la ligne if ... : est obligatoire (et automatique avec un éditeur adapté) : elle permet de délimiter la portée du if. Même remarque pour l'indentation délimitant la portée du else.
  • La présence de la partie else n'est pas obligatoire (imaginer un cas où l'on ne doit rien "faire" lorsque n est impair).
  • On remarquera l'utilisation de == pour le test d'égalité. On ne confondra pas avec = qui sert à l'affectation d'une variable.

Les opérateurs de comparaison.

Nous avons vu dans l'exemple ci-dessus comment tester que deux variables ont même valeur. On peut comparer les valeurs de deux variables avec les opérateurs du tableau suivant.

Comparaisons
OpérateurSymbole
égalité==
différent de !=
inférieur (strict) <
supérieur (strict) >
inférieur ou égal <=
supérieur ou égal >=

a=int(input("Entrez un entier a : "))
b=int(input("Entrez un entier b : "))

if a != b :
	print("Les entiers {} et {} sont différents".format(a,b) )
	if a < b :
		print(" {} est le plus petit des deux.".format(a) )
		print(" Et {} le plus grand des deux.".format(b) )
	else :
		print(' {} est le plus grand. '.format(a) )
else :
	print(' a et b sont égaux.')

Testez ce programme et attachez vous à comprendre la portée de chaque condition.

Les booléens

Il n'existe que deux valeurs booléennes : True et False.

Un test, comme ceux des programmes ci-dessus, renvoie toujours une valeur booléenne.

 
a = (2 == 3)
print("Valeur de a : " , a)
print("Type de a : ", type(a))

b = (5 == 5)
print("Valeur de b : " , b)
print("Type de b : ", type(b))


c = (7 > 8)
print("Valeur de c : " , c)
print("Type de c : ", type(c))

On obtient :

Valeur de a :  False
Type de a :  <class 'bool'>
Valeur de b :  True
Type de b :  <class 'bool'>
Valeur de c :  False
Type de c :  <class 'bool'>

Avec plus de deux cas.

Lorsqu'il y a plus de deux cas à envisager, on peut imbriquer les if ... else .... Mais un tel code est vite difficile à lire. On utilisera elif lorsque c'est possible pour éviter ces imbrications.

Exemple :


Si le reste de la division de n par 4 est 0 :
	 		afficher("n est multiple de 4.")
Sinon
	  		Si le reste de la division de n par 4 est 1 :
	  				afficher("le reste est 1.")
	  		Sinon
	  			Si le reste de la division de n par 4 est 2 :
	  					afficher("le reste est 2.")
	  			Sinon
	  					afficher("le reste est 3.")

A comparer avec l'utilisation d'un elif :

 
n=int(input("Entrez un entier positif : "))
if n%4 == 0:
	print("{} est multiple de 4.".format(n))
elif n%4 == 1:
	print("Le reste de la division de {} par 4 est 1.".format(n))
elif n%4 == 2 :
	print("Le reste de la division de {} par 4 est 2.".format(n))
else :
	print("Le reste de la division de {} par 4 est 3.".format(n))