Les conditions
Dans ce chapitre, vous allez découvrir quelque chose très utilisé par les programmeurs, car sans cela,
votre programme ferait toujours la même chose et ce ne serait pas très intéressant. Vous pourrez donc
après ce chapitre tester vos variables et fonctions. Comme par exemple tester si l'utilisateur est majeur.
L'instruction "if".
Donc nous voulons tester si l'utilisateur est majeur. On va d'abord tester s'il a 18 ans en testant la
valeur de la variable age et si elle contient la valeur 18, c'est que l'utilisateur est majeur.
Une condition s'effectue avec le mot clé "
if ...
:" et l'égalité avec l'opérateur
==.
If est un mot anglais qui veut dire "si", vous pouvez donc traduire en français pour vous aider.
age = input("quel age à tu ?")
print "Tu as", age, "ans."
# on teste si l'utilisateur a 18 ans
if age == 18 :
print "Tu es majeur.",
print "Donc tu n'es plus un tchiot."
print "Et bien moi j'ai 20 ans."
Comme je ne sais pas votre age, je vais le deviner ... ...
Désolé, je ne suis pas voyant donc je vais dire que vous avez 17 ans. On aura donc comme résultat :
tu as 17 ans.
Et bien moi j'ai 20 ans.
En fait, je me suis trompé, vous avez 18 ans. Le résultat sera donc :
tu as 18 ans.
Tu es majeur. Donc tu n'es plus un tchiot.
Et bien moi j'ai 20 ans.
Vous voyez que les deux phrases qui sont apparues appartiennent à la condition et c'est pour cela
qu'elles sont décalées par une tabulation. C'est ce que j'avais expliqué dans le premier chapitre.
PS: "Tu es majeur. Donc tu n'es plus un tchiot." est écrit en une ligne alors qu'il y a 2 print.
En fait j'ai mis une virgule à la fin du print (après "majeur"), elle permet de ne pas allez à la ligne.
L'instruction "else".
Ca serait bien si on pouvait dire une phrase quand la condition n'est pas bonne. Car avoir pile 18 ans,
c'est rare. Nous allons donc utiliser le mot clé
else :.
Else est lui aussi un mot anglais qui veut dire "sinon".
age = input("quel age à tu ?")
# on teste si l'utilisateur a 18 ans
if age == 18 :
print "Tu es majeur."
else :
print "Je ne peux rien dire à part que tu n'as pas 18 ans."
Donc si l'utilisateur à 18 ans, on dit "Tu es majeur.". Sinon on dit "Je ne peux rien dire à part que
tu n'as pas 18 ans."
L'instruction "elif".
Maintenant on veut savoir si l'utilisateur à 17 ans. On va commencer par tester s'il a 18 ans, s'il ne
les a pas, c'est la que l'on va tester s'il à 17 ans. On va donc utiliser le mot clé
elif ... :.
C'est une contraction de "else if", qui veut dire ..., vous ne trouvez pas ?
Et bien, il veut dire "sinon si".
age = input("quel age à tu ?")
# on teste si l'utilisateur a 18 ans, sinon s'il a 17 ans
if age == 18 :
print "Tu es majeur."
elif age == 17:
print "Encore quelques jours et tu seras majeur."
else :
print "Je ne peux rien dire à part que tu n'as pas 18 ans, ni 17 ans."
Donc on teste s'il a 18ans puis si la 1ere condition n'est pas bonne, on teste s'il a 17ans puis si
cette 2eme condition n'est pas bonne non plus, on écrit la phrase pour toutes les autres possibilités.
Les opérateurs de test
Maintenant on sait tester l'égalité, mais ça serez mieux si on pouvait tester si la personne est vraiment
majeure, donc si elle a plus ou a 18 ans. Dans ce cas on utilise l'opérateur supérieur ou égale (>=).
age = input("quel age à tu ?")
# on teste si l'utilisateur a 18 ans ou plus
if age >= 18 :
print "Tu es majeur."
else :
print "Tu n'es pas majeur"
Voici les autres opérateurs :
| OPERATEUR : |
Test : |
| == |
L'égalité
|
| != |
La différence
|
| > |
La supériorité
|
| < |
L'infériorité
|
| >= |
La supériorité ou l'égalité
|
| <= |
L'infériorité ou l'égalité
|
Exemple pour la différence :
age = input("quel age à tu ?")
# on teste par la différence si l'utilisateur a 18 ans
if age != 18 :
print "Tu n'a pas 18 ans"
else :
print "Tu a 18 ans"
Il existe aussi d'autres opérateurs pour les conditions:
| OPERATEUR : |
description : |
| or |
OU
|
| and |
ET
|
| not |
NON
|
- L'opérateur "or" permet de tester selon plusieurs conditions. Si au moins l'une d'elles
est bonne, les instructions s'effectueront.
age = input("quel age à tu ?")
# on teste si l'utilisateur est majeur.
if age < 18 or age <= 3:
print "Tu n'es pas majeur"
else :
print "Tu es majeur"
Que l'utilisateur ait moins de 18ans ou 3ans et moins, il n'est pas majeur.
- L'opérateur "and" permet de tester selon plusieurs conditions. Les instructions
s'effectueront, seulement si toutes les conditions sont bonnes.
age = input("quel age à tu ?")
# on teste si l'utilisateur est majeur.
if age < 18 and age <= 3:
print "Tu es un bébé qui fait de l'ordinateur"
elif age < 18 and age > 3:
print "Tu n'es pas majeur"
else :
print "Tu es majeur"
Si l'utilisateur a 3ans, la condition "age < 18" est bonne et "age <=3" aussi, donc c'est un bébé
Sinon si son âge est compris entre 4 et 17 ans, il n'est pas majeur
- L'opérateur "not" sert pour tester l'inverse :
age = input("quel age à tu ?")
# on teste par la négation si l'utilisateur a 18 ans
if not age == 18 :
print "Tu n'a pas 18 ans"
else :
print "Tu a 18 ans"
Si l'âge n'est pas égale à 18, on dit qu'il n'a pas 18 ans.
age = input("quel age à tu ?")
# on teste par la négation si l'utilisateur est majeur
if not age < 18 :
print "Tu es majeur"
else :
print "Tu n'es pas majeur"
Si l'âge n'est pas inférieur à 18, on dit qu'il est majeur. Ceci correspond à faire "supérieur ou égale".
Voici les autres définitions :
| OPERATEUR : |
description : |
| not ... == |
L'inégalité (différence)
|
| not ... != |
L'égalité
|
| not ... >= |
L'infériorité
|
| not ... > |
L'infériorité ou l'égalité
|
| not ... <= |
La supériorité
|
| not ... < |
La supériorité ou l'égalité
|
Vous pouvez aussi utiliser "
... and not ..." et "
... or not ..."
age = input("quel age à tu ?")
# on teste si l'utilisateur est majeur.
if age < 18 and age <= 3:
print "Tu es un bébé qui fait de l'ordinateur"
elif age < 18 and not age <= 3:
print "Tu n'es pas majeur"
else :
print "Tu es majeur"
Ceci est le même exemple que lors de l'explication de l'opérateur "and" mais avec l'opérateur
"and not"
Vous êtes obliger de mettre au moins une instruction dans une condition, par exemple il est impossible
de faire ce qui va suivre :
age = input("quel age à tu ?")
# on teste si l'utilisateur est majeur.
if age < 18:
print age
Pour cela, on va utiliser le mot clé
pass.
age = input("quel age à tu ?")
# on teste si l'utilisateur est majeur.
if age < 18:
pass
print age
C'est vrai cette condition est inutile mais au moins vous savez que vous êtes obligé de mettre au
moins une instruction.
L'instruction "if ... in ... :"
Lorsque vous devez chercher
un caractère (une lettre par exemple) ou du
texte dans une
variable de type
texte, il existe un moyen très simple de le faire.
Ce moyen utilise les mots clés "
if ... in ..." que l'on peut traduire par "
si ... est dans ...".
texte = "salut"
# on teste si la lettre a est prèsente dans la variable texte.
if 'a' in texte:
print "la lettre 'a' est présente dans le texte"
else :
print "la lettre 'a' n'est pas présente dans le texte"
# on teste si le texte "lu" est prèsente dans la variable texte.
if "lu" in texte:
print "le texte 'lu' est présente dans le texte"
Dans cet exemple, les deux conditions sont réalisées car la lettre 'a' et le texte "lu" sont présent
dans le texte.
Attention, cette condition ne se fait qu'avec du texte. (Heu!! ce n'est pas tout à fait exacte car elle peut aussi s'utiliser avec des listes, Mais pour l'instant je n'en parle pas.)
Depuis le début de ce chapitre, vous avez manipulé un type de variable sans le savoir. Ce type de
variable est appelé
Booléen.
Les booléens
Le type bool est un type qui prend deux valeurs : soit 0, soit 1. C'est deux valeurs peuvent être
aussi
True(Vrai) ou
False(Faux).
| valeur |
équivaut à : |
| 0 |
False |
| 1 |
True |
Comme une condition est soit vraie ou soit fausse, vous avez utilisé les booléens sans le savoir.
Prenons le cas où l'age vaut 19 donc la condition sera bonne, et elle sera remplacée par l'ordinateur
de la manière suivante :
| Normale |
remplacé par l'ordinateur |
if age >= 18:
print "Tu es majeur"
|
if True:
print "Tu es majeur"
|
En faite avec True (ou 1), la condition est considérée comme Vrai, donc il exécute les instructions.
Avec False (ou 0), la condition est considérée comme fausse, donc il n'exécute pas les instructions.
Vous pouvez donc faire une condition avec les booléens.
majeur = True # ou majeur = 1
if majeur:
print "Tu es majeur"
Les conditions imbriquées
Il est possible que dans votre code vous ayez besoin de faire une condition dans une condition. Ca
peut sembler compliqué, mais ce n'est pas le cas.Vous devez juste faire très attention aux indentations
(décalage).
Prenons un exemple vu précédemment et modifions le pour faire des conditions imbriquées.
age = input("quel age à tu ?")
# on teste si l'utilisateur est majeur.
if age < 18 :
print "Tu n'es pas majeur"
# on teste si l'utilisateur est un bébé.
if age <= 3:
print "Tu es un bébé qui fait de l'ordinateur"
else :
print "Tu es majeur"
Le programme teste d'abord si l'âge est inférieur à 18. Si c'est le cas on teste de nouveau la valeur
de "age" mais cette fois pour savoir si elle est inférieure ou égale à 3.
Conclusion
Grâce à ce chapitre, vous pouvez maintenant tester la valeur d'une variable ou celle retournée par une
fonction. Votre programme pourra réagir différemment en fonction de l'utilisateur par exemple.
Dans le chapitre suivant, vous apprendrez à écrire une punition de 500 lignes sans vous fatiguer.