Connection Menu Contenu

1788
membres
00h59
06
février
2012

Pseudo

Mot de passe

Accueil FORUM
repère : ROMMY Prod > Le tutoriel PYTHON > Les conditions

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

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. :D

chapitre precedent Exercices sommaire chapitre precedent
repère : ROMMY Prod > Le tutoriel PYTHON > Les conditions
Qui suis-je ? Contact Charte du site
Plan du site Accessibilité du site

Copyright © ROMMY Production
Le cours, les jeux et les logiciels sont la propriété de son auteur.
Toute reproduction totale ou partielle du cours est interdite sans l'accord de l'auteur.
La modification des jeux et logiciels est interdite sans l'accord de l'auteur.