Une structure conditionnelle est une suite d'instructions qui ne seront éxécutées que si les conditions requises sont réalisées.
Un premier exemple :
n ← ?
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))
Comme avec for et while, 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.
Opérateur
Symbole
é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))