Étape 11: Si / Sinon¶
- CS20-CP1 Apply various problem-solving strategies to solve programming problems throughout Computer Science 20.
- CS20-CP2 Use common coding techniques to enhance code elegance and troubleshoot errors throughout Computer Science 20.
- CS20-FP2 Investigate how control structures affect program flow.
- CS20-FP3 Construct and utilize functions to create reusable pieces of code.
Didacticiel-Tutorial¶
Bien qu’apprendre à programmer soit amusant, vous ne devriez pas dépenser tout votre temps devant l’ordinateur. Quand vous êtes à la maison, si
il pleut, continuez à lire, sinon
, allez dehors et jouez!
Réécrivons la phrase qui commence par si
ci-dessus
si il pleut,
continue de lire,
sinon,
aller jouer dehors
S’il s’agissait de Python, nous l’aurions peut-être écrit comme ceci:
if il_pleut():
continue_de_lire()
else:
aller_jouer_dehors()
Oui, Python inclut la possibilité de choisir plus d’un choix avec le mot-clé else
. Utilisons-le avec un autre exemple. Reeborg peut voir s’il y a un mur juste devant lui, en utilisant la fonction front_is_clear ()
. Ceci peut être utilisé avec if/else
pour écrire un programme qui guidera Reeborg dans un monde rectangulaire. Quelque chose comme ce qui suit devrait fonctionner:
def avance_ou_tourne():
if front_is_clear():
# quelque chose
else:
# autre chose
repeat 40:
avance_ou_tourne()
À ton tour¶
Ouvrez l’étape 11 de l'environnement Reeborg.

Reeborg veut faire des bouquets de fleurs pour ses amis, Zoe et Eli. Reeborg a la permission de prendre take()
des tulipes dans les verges de ses voisins. Malheureusement pour Reeborg, chacun des cours est différent. Reeborg sait que la cour sera rectangulaire, qu’il faudra 20 pas pour se déplacer dans la cour et qu’il y aura une tulipe à chaque coin de la cour.
Créez un programme pour que Reeborg se promène à l’extérieur de la cour, ramasse une tulipe s’il le peut et avance s’il ne le peut pas. Vous devez utiliser un repeat 20
et if/else
.
Note
Pour cette étape, le monde sera différent chaque fois que vous appuierez sur la touche Play. Chaque fois que vous exécutez votre code, de nouvelles dimensions pour le monde seront utilisées. Vous pouvez aussi supposer que l’emplacement de départ sera toujours dans le coin inférieur gauche du monde.
Si vous avez des problèmes (voici une explication plus détaillée)¶
Nous avons vu comment on peut voir les déclarations def
et if
comme étant (parfois) équivalent à l’insertion d’un bloc de code; l’exception était lorsque la condition de l’instruction if
était False
, dans ce cas, nous avons ignoré le bloc de code, ce qui équivaut à la suppression de ce dernier. Les instructions if/else
peuvent être considérées comme insérant l’un ou l’autre bloc de code. Ainsi
We have seen how def
s and if
statements could be thought of as being (sometimes) equivalent to inserting a code block; the exception was when the condition of the if
statement was False
, in which case we ignored the code block which is equivalent to deleting it. if/else
statements can be thought as inserting one or the other code block. Thus
move()
if True:
turn_right()
else:
turn_left()
move()
est équivalent à
move()
turn_right()
move()
tandis que
move()
if False:
turn_right()
else:
turn_left()
move()
est équivalent à
move()
turn_left()
move()
Nous pouvons le représenter sous forme d’organigramme/flowchart:
