Previous Up Next
pdf - e-book - archive

1.3  Traitements conditionnels

On appelle traitement conditionnel une portion de code qui n’est pas exécutée systématiquement, c’est à dire des instructions dont l’exécution est conditionnée par le succès d’un test.

1.3.1  Si ... Alors

Principe

En algorithmique un traitement conditionnel se rédige de la sorte :

Si <condition> alors
                <instructions>
finSi

Si la condition est vérifiée, alors les instructions sont exécutées, sinon, elles ne sont pas exécutées. L’exécution de l’algorithme se poursuit alors en ignorant les instructions se trouvant entre le alors et le finSi. Un traitement conditionnel se code de la sorte :

if (<condition>): <instructions>

Notez bien qu’il y a deux points après la parenthèse du if.

Comparaisons

La formulation d’une condition se fait souvent à l’aide des opérateurs de comparaison. Les opérateurs de comparaison disponibles sont :

Par exemple, la condition a == b est vérifiée si et seulement si a et b ont la même valeur au moment où le test est évalué. Par exemple,

i = int(input("Saisissez une valeur")) if (i == 0): print("Vous avez saisi une valeur nulle.") print("Au revoir !")

Si au moment où le test i == 0 est évalué, la valeur de i est bien 0, alors le test sera vérifié et l’instruction print("Vous avez saisi une valeur nulle.") sera bien exécutée. Si le test n’est pas vérifié, les instructions du bloc sous la portée du if sont ignorées.

Achtung !!!

Les indentations sont indispensables ! Les instructions sous la portée du if doivent être précédées d’une tabulation de plus que le if. Sinon des choses atroces se produiront !

Si ... Alors ... Sinon

Il existe une forme étendue de traitement conditionnel, on la note en algorithmique de la façon suivante :

Si <condition> alors
                <instructions>
sinon
                <autresinstructions>
finSi

Les instructions délimitées par alors et sinon sont exécutées si le test est vérifié, et les instructions délimitées par sinon et finSi sont exécutées si le test n’est pas vérifié. On traduit le traitement conditionnel étendu de la sorte :

if (<condition>): <instructions1> else: <instructions2>

Par exemple,

i = int(input("Saisissez une valeur")) if (i == 0): print("Vous avez saisi une valeur nulle.") else: print("La valeur que vous avez saisi n'est pas nulle.")

Notez la présence de l’opérateur de comparaison ==. Si vous utilisez = pour comparer deux valeurs, ça ne compilera pas !

Connecteurs logiques

On formule des conditions davantage élaborées en utilisant des connecteurs et et ou. La condition A et B est vérifiée si les deux conditions A et B sont vérifiées simultanément. La condition A ou B est vérifiée si au moins une des deux conditions A et B est vérifiée. Le et s’écrit and et le ou s’écrit or. Par exemple, voici un programme qui nous donne le signe de i × j sans les multiplier.

print("Saisissez deux valeurs numériques : ") i = float(input()) j = float(input()) print("Le produit de ", i, " par ", j, " est ") if ((i >= 0 and j >= 0) or (i <= 0 and j <= 0)): printLine("positif.") else: printLine("négatif.")

1.3.2  Booléens

Une variable booléenne ne peut prendre que deux valeurs : vrai et faux. Le type booléen en Python est bool et une variable de ce type peut prendre soit la valeur True, soit la valeur False.

Utilisation dans des if

Lorsqu’une condition est évaluée, par exemple lors d’un test, cette condition prend à ce moment la valeur vrai si le test est vérifié, faux dans le cas contraire. Il est donc possible de placer une variable booléenne dans un if. Observons le test suivant :

b = bool(input("Saisissez un booléen : ")) if (b): printLine("b est vrai.") else: printLine("b is faux.")

Si b contient la valeur True, alors le test est réussi, sinon le else est exécuté. On retiendra donc qu’il est possible de placer dans un if toute expression pouvant prendre les valeurs True ou False.

Tests et affectations

Un test peut être effectué en dehors d’un if, par exemple de la façon suivante :

x = (3>2)

On remarque que (3>2) est une condition. Pour décider quelle valeur doit être affectée à x, cette condition est évaluée. Comme dans l’exemple ci-dessus la condition est vérifiée, alors elle prend la valeur True, et cette valeur est affectée à x.

Connecteurs logiques binaires

Les connecteurs or et and peuvent s’appliquer à des valeurs (ou variables) booléennes. Observons l’exemple suivant :

x = (True and False) or (True)

Il s’agit de l’affectation à x de l’évaluation de la condition (True and False) or (True). Comme (True and False) a pour valeur False, la condition False or True est ensuite évaluée et prend la valeur True. Donc la valeur True est affectée à x.

Opérateur de négation

Parmi les connecteurs logiques se trouve not, dit opérateur de négation. La négation d’une expression est vraie si l’expression est fausse, fausse si l’expression est vraie. Par exemple,

x = not (3==2)

Comme 3 == 2 est faux, alors sa négation not (3 == 2) est vraie. Donc la valeur True est affectée à x.


Previous Up Next