HomeTortue graphiqueGPanelRobotique WebTigerPython
 Python - Online
if-else
Deutsch   English   Français   

9. IF-ELSE

 

 

TU APPRENDS ICI...

 

comment procéder pour que les blocs de programme ne soient exécutés que sous certaines conditions. Tu apprends également à annuler des conditions et à les combiner avec les opérateurs AND et OR.

 

 

EXEMPLES

 

Dans ton programme, tu génères deux nombres aléatoires x et y avec la commande randint(-250, 250) et tu fais sauter la tortue à la position (x, y). A cet endroit, tu dessines un point rouge si la tortue se trouve à l'intérieur du cercle de rayon 250, sinon tu dessines un point gris. Tu répètes ce processus 10 000 fois. Parfois, on appelle cela une pluie aléatoire.

Si la tortue se trouve à l'intérieur du cercle, le théorème de Pythagore stipule que sa distance au carré par rapport à l'origine est inférieure à 250 * 250 = 62500.

En langage courant, tu dirais:

“Si le carré du rayon est inférieur à 62500, dessinez un point rouge, sinon dessinez un point gris.”

Tu exprimes cela avec le mot-clé if condition: et tu mets en retrait le bloc de programme suivant. N'oublie pas les deux points! Si la condition n'est pas remplie, le bloc de programme qui se trouve sous la ligne avec else: .
N'oublie pas les deux points après après else !

 


Programme:    

from gturtle import *
from random import randint

makeTurtle()
hideTurtle()

repeat 10000:
    x = randint(-250, 250)
    y = randint(-250, 250)
    setPos(x, y)
    rsquare = x * x + y * y
    if rsquare < 62500:
       setPenColor("red")
       dot(4)
    else:
       setPenColor("gray")
       dot(4)
► Copy to clipboard

 

 

REMARQUE...

 

Au lieu de dire qu'une condition est remplie ou non, on dit aussi que la condition est vraie ou fausse. Si les points gris ne doivent pas être dessinés, tu peux aussi omettre la partie else. Essaie de le faire !

Si tu veux interrompre le programme avant la fin, clique sur le bouton carré rouge.

 

 

LIER DES CONDITIONS AVEC AND

 

Comme c'est aussi le cas dans le langage courant, tu peux combiner deux conditions avec and. La condition ainsi combinée n'est vraie que si les deux conditions partielles sont vraies. Ici, tu dessines des points rouges si la coordonnée x de la tortue est supérieure à -100 et inférieure à 100. Il en résulte apparemment une bande rouge verticale.

 

Programme:    

from gturtle import *
from random import randint

makeTurtle()
hideTurtle()

repeat 10000:
    x = randint(-250,250)
    y = randint(-250,250)
    setPos(x, y)
    if x > -100 and x < 100:
       setPenColor("red")
       dot(4)
    else:
       setPenColor("gray")
       dot(4)
► Copy to clipboard

 

 

LIER DES CONDITIONS AVEC OR

 

Une bande rouge horizontale satisfait la condition y > -100 et y < 100. Les points qui se trouvent soit dans la zone verticale, soit dans la zone horizontale, soit dans les deux, satisfont aux deux conditions. Dans le langage courant, tu dis qu'ils se trouvent dans la bande verticale ou (aussi) horizontale. Tu relies les deux conditions avec or.

 

Programme:    

from gturtle import *
from random import randint

makeTurtle()
hideTurtle()

repeat 10000:
    x = randint(-250,250)
    y = randint(-250,250)
    setPos(x, y)
    if (x > -50 and x < 50) or (y > -50 and y < 50):
       setPenColor("red")
       dot(4)
    else:
       setPenColor("gray")
       dot(4)
► Copy to clipboarderen

 

 

NÉGATION D'UNE CONDITION

 

Les points qui ne sont pas dans la bande verticale satisfont la condition not (x > -100 and x < 100), comme le montre le programme suivant:

 

Programme:    

from gturtle import *
from random import randint

makeTurtle()
hideTurtle()

repeat10000:
    x = randint(-250, 250)
    y = randint(-250, 250)
    setPos(x, y)
    if not (x > -100 and x < 100):
       setPenColor("red")
       dot(4)
    else:
       setPenColor("gray")
       dot(4)
► Copy to clipboard

 

 

REMEMBER...

 

Il est très important d'utiliser correctement les parenthèses dans les conditions. Comme not est plus contraignant que and et or, tu dois mettre une parenthèse ici. La liaison la plus faible est or.

La bande grise s'obtient logiquement aussi si tu exiges que x <= -50 ou x >= 50. On peut donc formuler les conditions de différentes manières. Essaie !

Les opérateurs de comparaison suivants sont disponibles pour les nombres :

  <  plus petit
  <=   plus petit ou égal à
  ==   égal à
  >=   plus grand ou égal à
  >   plus grand
  !=   différent

Tu dois notamment t'habituer au doublement du signe d'égalité pour la condition d'égalité. Celui-ci est nécessaire pour que l'ordinateur puisse faire la différence entre l'affectation et la condition d'égalité.

 

 

 

SÉLECTION MULTIPLE

 

Pour distinguer plus de deux cas, tu dois à nouveau insérer une condition if dans la partie else. En Python, on peut utiliser elif de manière plus courte et écrire:

 
if cond1:
    ... 
elif cond2:
    ...
else:
    ...

Tu peux le voir dans l'exemple suivant, où l'une des 5 couleurs de crayon est choisie au hasard.

 

Programme:    

from gturtle import *
from random import randint

makeTurtle()
hideTurtle()
n = randint(1, 6)

if n == 1:
    setPenColor("red")
elif n == 2:
    setPenColor("yellow")
elif n == 3:
    setPenColor("magenta")
elif n == 4:
    setPenColor("green") 
elif n == 5:
    setPenColor("blue")        
else:
    setPenColor("black") 
dot(100)
  
► Copy to clipboard

 

 

À FAIRE PAR TOI-MÊME

 
1.

Utilise des nombres aléatoires entre -150 et 150 pour obtenir les graphiques suivants.

a)

b)

 

2.

Tu as appris qu'il est possible de dessiner une spirale avec le programme suivant.

from gturtle import *
makeTurtle()
hideTurtle()

s = 10
repeat 100:
    forward(s)
    right(90)
    s = s + 2

Utilise la structure if-else pour dessiner une spirale bicolore.

 

 
 
3.

Utilise la sélection multiple pour dessiner une spirale à quatre couleurs.