Les structures conditionnelles en Python

Les structures conditionnelles en Python sont un ensemble d’instructions logiques qui contrôlent l’ordre dans lequel un code est exécuté.

En réalité, un programme, n’est pas toujours exécuté selon une structure séquentielle.

Comme dans notre vie de tous les jours, un code s’exécute selon des conditions que vous pouvez déterminer.

Les structures conditionnelles en Python

La façon dont un programme peut évaluer une condition se résume à vrai (True) ou faux (False). Si une condition est évaluée à True, une instruction spécifique sera exécutée. Sinon, c’est une autre qui le sera. Toutefois, si toutes les conditions seront évaluées à False, l’interpréteur Python sortira du programme et rien ne sera renvoyé.

Les booléens et les structures conditionnelles en Python

Le type de donnée bool en Python prend deux valeurs True ou False (la première lettre est en majuscule). De plus, True correspond à 1 et False à 0.

>>> x = True
>>> x
True

Vérifier à quelle classe appartient True

>>> type(True)
<class 'bool'>
# True correspond à 1
>>> True + 2
3
# False correspond à 0
>>> False + 5
5

Les valeurs nulles et les données vides sont associées à False et toutes les autres sont associées à True.
Par exemple, une chaîne de caractère vide est évaluée à False.

>>> bool('')    
False
>>> bool('bonjour')
True

Par contre, un nombre différent de zéro est évaluée à True.

>>> bool(0)
False
>>> bool(10)
True

Pour vérifier des conditions, on utilise les opérateurs Python afin de comparer des valeurs.

La structure conditionnelle if

Les structures conditionnelles en Python sont nécessaires dans les situations où vous souhaitez que votre programme effectue une action ou un calcul uniquement lorsqu’une certaine condition est remplie.

L’instruction if qui veut dire (si) introduit une expression booléenne, suivie d’une instruction ou d’un groupe d’instructions qui indique quelle action doit être effectuée si l’expression de test est évaluée à True.

Dans votre IDLE, tapez :

>>> x = 3
>>> y = 5
>>> if x < y:

Appuyez sur la touche Entrée, puis tapez :

print("x est inférieur à y")

Lorsque vous appuyez sur la touche Entrée, l’interpréteur ne fait rien, il attend d’autres instructions. Donc, appuyez sur la touche Entrée encore une fois pour lui dire que vous avez terminé votre code.
Vous aurez ce code :

# Vérifier si un nombre est inférieur à un autre
>>> x = 3
>>> y = 5
>>> if x < y:
	print("x est inférieur à y")

Le résultat après l’exécution du code :

x est inférieur à y

Vous dites à l’interpréteur Python :
Si la valeur affectée à la variable x est inférieur à celle affectée à la variable y : affiche moi le message : x est inférieur à y.

Par contre, si x est supérieur à y, l’interpréteur ne fera rien.
Modifions les valeurs des variables x et y.

>>> x = 6
>>> y = 2

Mettez le curseur devant la condition if si dessus et appuyez sur la touche Entrée une fois, pour un copier/coller, puis deux fois encore pour exécuter le code.

>>> if x < y:
	print("x est inférieur à y")

	
>>> 

Cependant, rien ne s’affiche, parce que x n’est pas inférieur à y.

Remarquez l’indentation après les deux points : de la condition. Elle indique un bloc d’instructions à l’intérieur de la structure conditionnelle if.

L’indentation définie le début et la fin d’un bloc d’instructions.

Un bloc d’instructions est considéré comme étant une seule entité. Par conséquent, si une condition est évaluée à True, toutes les instructions du bloc seront exécutées et si elle est False, aucune instruction ne le sera.

En fait, l’indentation est de quatre espaces et dans certains IDE elle est configurée sur la touche Tab(vous pouvez également la paramétrer).

Nous allons exécuter notre code à partir d’un fichier.

Dans IDLE, sélectionnez File -> New File
copiez/collez ce code.

x = 2
y = 5
if x < y:
    print("x est inférieur à y")
# exécuter un saut de ligne avec \n
print('\n')
print("Ce texte va être affiché quelque soit la condition \
parce qu’il est à l'extérieur du bloc de if")

Dans votre éditeur de texte, sélectionnez Run -> Run Module ou appuyez sur la touche F5 pour exécuter le code dans le Shell. Enregistrez votre fichier dans le Bureau de votre PC, pour y accéder facilement, nommez-le conditions.

========= RESTART: /home/hen/Bureau/conditions.py ========
x est inférieur à y


Ce texte va être affiché quelle que soit la condition 
parce qu’il est à l’extérieur du bloc de if

Si vous modifiez la valeur de x à 8, vous aurez ce résultat.

========= RESTART: /home/hen/Bureau/conditions.py ========


Ce texte va être affiché quelle que soit la condition
parce qu’il est à l’extérieur du bloc de if

La condition étant évalué à False, le message n’a pas été affiché.

La structure conditionnelle if … else

Parfois, vous souhaitez évaluer une condition et exécuter des instructions si elle est vraie. Mais, les structures conditionnelles en Python vous offre la possibilité de faire plusieurs choix si la condition n’est pas remplie. Ceci est possible à l’aide de l’instruction else (sinon).

Copiez/collez ce code dans votre fichier conditions.py, exécutez le code avec x<y puis avec x>y.

x = 2
y = 5
if x < y:
    print("x est inférieur à y")
    print("vous pouvez mettre d'autres instructions dans ce bloc")
    print("on est toujours dans le bloc de if")

else:
    print("x est supérieur à y")
    print("Vous pouvez mettre d'autres instructions dans ce bloc")
    print("Nous somme dans le bloc de else")

print('\n')
print("Ce texte va être affiché quelle que soit la \
condition parce qu’il est à l’extérieur des blocs \
de if et de else")    
print('\n')
print("Fin de la condition")

Rappelle : on utilise un antislash \ à l’intérieur de la fonction print() afin d’écrire un texte sur plusieurs lignes. Mais, attention, ce n’est pas un saut ligne.

Le résultat dans le Shell.

======== RESTART: /home/hen/Bureau/conditions.py =========
x est supérieur à y
Vous pouvez mettre d’autres instructions dans ce bloc
nous somme dans le bloc de else


Ce texte va être affiché quelle que soit la condition 
parce qu’il est à l’extérieur des blocs de if et de else


Fin de la condition

Donc, \n est un saut de ligne et l’antislash \ à l’intérieur du print() permet l’écriture sur plusieurs lignes.
On a vu ça dans les chaînes de caractères.

Prenons un autre exemple :

condition = False
if condition:
    print("C'est juste")
else:
    print("C'est Faux")

L’exécution du code.

C'est Faux

Lorsque vous dites if condition, c’est l’équivalent d’un True.
Vous aurez le même résultat si vous affectez condition à None ou à 0.
Pour mieux comprendre le concept, remplacez if condition par if not condition.

La structure conditionnelle ifelifelse

Il existe également une syntaxe pour exécuter plusieurs conditions consécutives. Pour cela, on utilise une ou plusieurs instructions elif (else if qui veut dire sinon si ).

Python évalue chaque condition et exécute le premier bloc de code évalué à True. Si aucune des expressions if et elif n’est vraie et qu’une instruction else est spécifiée, alors elle sera exécutée.

Exécutez ce code dans conditions.py

x = 8
y = 6
if x < y:
    print("x est inférieur à y")
elif x == y:
    print("x égal y")
elif x % 2 == 0 and y % 2 == 0:
    print("x et y sont des nombres pairs")
else:
    print("x est supérieur à y")
print('\n')
print("Fin de la condition")

Ce qui donne comme résultat dans le Shell.

======= RESTART: /home/hen/Bureau/conditions.py ========
x et y sont des nombres pairs


Fin de la condition
>>> 

Dans le code précédent, on a utilisé l’opérateur and qui veut dire (et).

De plus, on a utilisé le modulo % qui vérifie le reste de la division de deux variables x et y.

Notez qu’une fois une condition est exécutée, les autres seront ignorées, même si elles sont évaluées à True. Tel est le cas de la dernière instruction else qui a été ignorée. En fait, l’interpréteur n’a pas affiché :
x est supérieur à y

Testez l’exemple précédent en modifiant les valeurs de x et y. Vous pouvez également ajouter une autre instruction elif pour vérifier si l’un des deux nombres est pair en utilisant l’opérateur or.

elif x % 2 == 0 or y % 2 == 0:
    print("Nous avons au moins un nombre pair")

Les structures conditionnelles imbriquées

Python vous donne la possibilité d’écrire des structures conditionnelles imbriquées. Le principe ici est que vous avez un bloc à l’intérieur d’un autre bloc. Toutefois, faites attention à l’indentation sinon vous aurez une erreur.

x = 8
y = 10
if x < y and x != 0 and y != 0:  
    print("x est inférieur à y")  
    if x % 2 != 0:  
        print("x est un nombre impair")  
    elif x % 2 == 0:  
        print("x est un nombre pair")

elif x == 0 or y == 0:
    print("x ou y égal 0")
    
elif x == y:
    print("x égal y")

else:
    print("x est supérieur à y")

print('\n')

print("Fin de la condition")

Changez les valeurs de x et y pour voir le comportement de votre code.

Des structures conditionnelles sur la même ligne

En fait, il est possible d’écrire les structures conditionnelles en Python sur la même ligne. Vous pouvez avoir plusieurs structures conditionnelles sur la même ligne, séparées par des points-virgules.
Testez ce code en mode interactif et n’oubliez pas d’appuyer deux fois sur la touche Entrée.

>>> if x < y: print("x est inférieur à y"); print("y est supérieur à x"); print("x est différent de y")

x est inférieur à y
y est supérieur à x
x est différent de y
>>> 

C’est la même chose que d’écrire :

>>> if x < y:
	print("x est inférieur à y")
	print("y est supérieur à x")
	print("x est différent de y")

	
x est inférieur à y
y est supérieur à x
x est différent de y

Cependant, pour des raisons de lisibilité il est préférable d’écrire vos conditions sur plusieurs lignes, sauf si votre structure contient une seule instruction.

>>> if x < y: print("x est inférieur à y")

x est inférieur à y

Minimiser les structures conditionnelles avec les ternaires

La structure conditionnelle ternaire en Python tire son nom du fait qu’elle prend trois paramètres : [Vrai] if [expression] else [Faux].

Python évalue d’abord la condition. Si elle est vraie, il exécute la première instruction. Sinon, il exécute la deuxième. En fait, il évalue les conditions de gauche à droite.

Exécutez ce code en mode interactif.

>>> x = 5
>>> print("x est un nombre impair") if x % 2 != 0 else print("x est un nombre pair")

Le résultat :

x est un nombre impair

Pour minimiser encore plus ce code, vous pouvez écrire une seule fois la fonction print().

>>> print("x est un nombre impair" if x % 2 != 0 else "x est un nombre pair")
x est un nombre impair

Ce code est la même chose que :

>>> x = 5
>>> if x % 2 != 0:
	print("x est un nombre impair")
else:
	print("x est un nombre pair")

	
x est un nombre impair

Comme vous pouvez le constater, lorsque vous avez utilisé les ternaires, vous avez pu remplacer quatre lignes de code par une seule ligne.

Imbriquer des structures conditionnelles ternaires

Dans l’exemple suivant, nous utiliserons des ternaires imbriquées pour trouver le maximum de trois nombres.

>>> a, b, c = 10, 45, 16
# affecter le résultat de la condition à la variable max
>>> max = a if a > b and a > c else b if b > c else c
>>> print(max)
45

En fait, le code précédent est le même que :

>>> if a > b and a > c:
	print(a)

else:
	if b > c:
	    print(b)
	else:
	    print(c)

	    
45
>>> 

Les structures conditionnelles en Python

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Retour en haut