Nous allons maintenant étudier une structure fondamentale en programmation le « si ...... alors.......sinon........».
L'idée de base est la suivante :
si condition:
suite_instruction1
sinon:
suite_instruction2
Si « condition » est True alors « suite_instruction1 » est exécuté et « suite_instruction2 » est ignoré.
Sinon (sous-entendu que « condition » est False) « suite_instruction2 » est exécuté et « suite_instruction1 » est ignoré.
Notez l'utilisation d'un élément nouveau : le décalage de «suite_instruction1» et de « suite_instruction2». Ce décalage est appelé indentation, il permet de rendre le code plus lisible. Dans le cas de l'utilisation d'un si/alors, l'indentation est obligatoire en Python.
Soit le programme suivant :
a=4
b=7
if a<b:
print('Je suis toto.');
print("Je n'aime pas titi.")
else:
print('Je suis titi.')
print("Je n'aime pas toto.")
print("En revanche, j'aime le Python.")
Quel est le résultat attendu après l'exécution de ce programme ?
Vérifiez votre hypothèse à l'aide de IDLE ou de Python fiddle.
Notez la présence des guillemets " à la place de l'apostrophe '. Pourquoi d'après vous ?
Écrire un programme qui demande l'âge de l'utilisateur. Si l'utilisateur a 18 ans ou plus, le programme devra afficher « Bonjour, vous êtes majeur.». Si l'utilisateur a moins de 18 ans, le programme devra afficher « Bonjour, tu es mineur.»
Votre programme ci-dessus, souffre sans doute d'un défaut relativement ennuyeux : si l'utilisateur s'amuse à entrer des lettres au moment où le programme lui demande son âge, que va-t-il se passer ?
Pour l'instant, ce problème est insoluble, surtout si l'utilisateur s'acharne à entrer n'importe quoi. La prochaine activité apportera une solution à notre problème.
Un if peut contenir plusieurs conditions, nous aurons alors une structure de la forme :
si condition1 op_logique condition2:
suite_instruction1
sinon:
suite_instruction2
« op_logique » étant un opérateur logique.
Nous allons étudier 2 opérateurs logiques : le «ou» (noté en Python or) et le «et» (noté en Python and).
Par exemple (condition1 or condition2) est vrai si condition1 est vraie et condition2 est vraie.
Autre exemple (condition1 and condition2) est faux si condition1 est vraie et condition2 est faux.
Les résultats peuvent être regroupés dans ce que l'on appelle une table de vérité :
condition1 | condition2 | condition1 or condition2 |
---|---|---|
vrai | vrai | vrai |
vrai | faux | vrai |
faux | vrai | vrai |
faux | faux | faux |
condition1 | condition2 | condition1 and condition2 |
---|---|---|
vrai | vrai | vrai |
vrai | faux | faux |
faux | vrai | faux |
faux | faux | faux |
Nous aurons l'occasion d'utiliser ces opérateurs logiques très prochainement.