La prise de décision consiste à anticiper les conditions qui se produisent pendant l'exécution du programme et à spécifier les actions à entreprendre en fonction de ces conditions. Les structures de décision évaluent plusieurs expressions qui produisent VRAI ou FAUX comme résultat. Les structures de décision évaluent plusieurs expressions qui produisent VRAI ou FAUX comme résultat. Ceci permet de déterminer l'action à entreprendre et les instructions à exécuter si le résultat est VRAI ou FAUX dans le cas contraire.
Dans Python, les conditions logiques classiques en mathématiques sont supportées :
Égales : a == b
Non égal : a != b
Inférieur à : a < b
Inférieur ou égal à : a <= b
Supérieur à : a > b
Supérieur ou égal à : a >= b
On peut utiliser ces conditions de différentes manières, le plus souvent dans des instructions "if" et des boucles.
Une instruction "if" est écrite à l'aide du mot clé if.
La syntaxe de l'instruction if est la suivante :
L'instruction if vérifie d'abord la condition.
Si la condition est évaluée à True, elle exécute les instructions dans le bloc if. Sinon, elle ignore les instructions.
Les deux points ( :) qui suivent la condition sont très importants. Si vous l'oubliez, une erreur de syntaxe se produira.
Exemple Instruction if :
age = input('Entrer votre age:')
if int(age) >= 18:
print("Vous êtes autorisé à voter.")
Dans cet exemple, vous êtes invité à saisir votre âge. Si vous entrez un nombre supérieur ou égal à 18, le message " Vous êtes autorisé à voter " s'affiche à l'écran. Sinon, il ne fait rien.
La condition int(age) >= 18 convertit la chaîne de caractères saisie en un nombre entier et la compare à 18.
Indentation dans les code de python
Python utilise l'indentation (espace blanc en début de ligne) pour définir les blocks de code. D'autres langages de programmation utilisent souvent des crochets à cette fin. D'où l'importance de l'indentation dans les codes en python.
Exemple:
age = input('Entrer votre age:')
if int(age) >= 18:
print("Vous êtes autorisé à voter.")
print("merci allez voter.")
Dans cet exemple, si vous entrez un nombre supérieur ou égal à 18, vous verrez deux messages.
Par contre si le nobmre est inferieur à 18 rien ne se passe.
Dans cet exemple, l'indentation est très importante. Toute déclaration qui suit l'instruction if doit avoir un espace de quatre.
Si vous n'utilisez pas correctement l'indentation, le programme fonctionnera différemment. Par exemple :
age = input('Entrer votre age:')
if int(age) >= 18:
print("Vous êtes autorisé à voter.")
print("merci allez voter.")
Dans cet autre exemple qui est le même que le précédent, si vous entrez un nombre supérieur ou égal à 18, vous verrez deux messages, tout semble normal !!!.
Mais non. Car si le nombre est inferieur à 18 vous verrez le message ('merci allez voter.') qui s'affiche, ce qui est différent de ce que nous désirons.
Dans cet exemple, l'instruction finale s'exécute toujours, quelle que soit la condition de l'instruction if. La raison en est qu'elle n'appartient pas au bloc if du fait que l'indentation n'est pas bonne.
L'instruction Python if...else
si vous souhaitez effectuer une action lorsque la condition est vraie et une autre action lorsque la condition est fausse.
Pour ce faire, on utilise l'instruction if...else.
Voici la syntaxe de l'instruction if...else comme ce que suit:
age = input('Entrer votre age:')
if int(age) >= 18:
print("Vous êtes autorisé à voter.")
print("merci allez voter.")
else:
print("Vous n'êtes pas autorisé à voter.")
L'instruction Python if...elif...else
Si vous souhaitez vérifier plusieurs conditions et effectuer une action pour chacune d'entre elles, vous pouvez utiliser l'instruction if...elif...else. L'abréviation elif signifie else if.
La syntaxe de l'instruction if...elif...else est comme ci-dessous :
if condition if :
bloc if
elif elif-condition1 :
elif-bloc1
elif elif-condition2 :
elif-bloc2
...
else :
else-block
L'instruction if...elif...else vérifie chaque condition (if-condition, elif-condition1, elif-condition2, ...) dans l'ordre où elles apparaissent dans l'instruction jusqu'à ce qu'elle trouve celle qui vaut True.
Lorsque l'instruction if...elif...else en trouve une, elle exécute l'instruction qui suit la condition et ne teste pas les autres conditions.
Si aucune condition ne vaut True, l'instruction if...elif...else exécute l'instruction dans la branche else.
Notez que le bloc else est facultatif. Si vous l'omettez et qu'aucune condition n'est vraie, l'instruction ne fait rien.
Dans l'exemple suivant, on utilise l'instruction if...elif..else pour déterminer le prix du billet en fonction de l'âge :
age = input('Entrez votre âge:')
# convertir la chaîne de caractères en int
your_age = int(age)
# détermine le prix du billet
if your_age < 5 :
prix_du_billet = 5
elif your_age < 16 :
prix_du_billet = 10
else :
prix_du_billet = 18
# affichage du prix du billet
print(f" Vous devrez payer ${prix_du_billet} pour le billet ")
Dans cet exemple :
Si l'âge en entrée est inférieur à 5, le prix du billet sera de 5 $.
Si l'âge saisi est supérieur ou égal à 5 et inférieur à 16 ans, le prix du billet est de 10 $.
Sinon, le prix du billet est de 18 $.
If raccourci
Si vous n'avez qu'une seule instruction à exécuter, vous pouvez la placer sur la même ligne que l'instruction if.
Exemple Instruction if sur une ligne :
age = input('Entrez votre âge:')
# convertir la chaîne de caractères en int
your_age = int(age)
# détermine le prix du billet
if your_age < 5 : prix_du_billet = 5
elif your_age < 16 : prix_du_billet = 10
else : prix_du_billet = 18
# affichage du prix du billet
print(f" Vous devrez payer ${prix_du_billet} pour le billet ")
Le mot-clé and
Le mot-clé and est un opérateur logique, et est utilisé pour combiner des conditions :
Exemple Tester si a est supérieur à b, ET si c est supérieur à a :
a = 200
b = 33
c = 500
if a > b and c > a :
print("Les deux conditions sont vraies")
Le mot-clé or
Le mot-clé or est un opérateur logique, et est utilisé pour combiner des instructions conditionnelles :
Exemple Tester si a est supérieur à b, OU a est supérieur à c :
x = 41
if x > 10 :
print("Au-dessus de dix,")
if x > 20 :
print("et aussi au-dessus de 20 !")
else :
print("mais pas au-dessus de 20.")
L'instruction pass
Les instructions if ne peuvent pas être vides, mais si, pour une raison quelconque, vous avez une instruction if sans contenu, insérez l'instruction pass pour éviter d'obtenir une erreur.
Exemple