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é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))