16. Tant que...

Quand nous voulons répéter des instructions jusqu'à ce qu'une certaine condition soit satisfaite, Python nous donne une façon plus simple d'écrire cela en utilisant un nouveau mot-clé : while. Je vais vous montrer d'abord ce que cela donne en utilisant du pseudocode pour réécrire un exemple que nous avons déjà vu.

Tant que pas sur une sonnette,
... continuer à avancer ;
autrement,
... arrêter.

Vous serez d'accord pour dire que cela exprime la même idée qu'avant. En utilisant du code Python, voici comment nous l'écririons réellement :

while not on_beeper():
move()

turn_off()

Plus besoin de repeat. Essayez !


À votre tour

Utilisez while et not pour réécrire le programme de saut de haies pour que vous n'ayez pas besoin d'utiliser un nombre arbitraire de répétitions des instructions. En d'autres termes, le coeur de votre programme devrait ressembler à ce qui suit :

while not on_beeper():
avancer_ou_sauter()

turn_off()

Assurez vous que ça marche !

Le temps de désherber et semer

C'est encore le printemps. Le père de Reeborg a semé des graines dans le jardin pour la récolte d'automne. Tout comme la dernière fois, à certains endroits, deux graines ont commencé à pousser alors qu'à d'autres  endroits aucune n'a germé. L'image ci-dessous montre une situation typique (fichier : harvest4.wld).

désherber

Aidez Reeborg à désherber le jardin, pour qu'il n'y ait aucun endroit avec deux carottes (sonnettes), et re-semer pour qu'il n'y ait aucun endroit sans carottes.

Voici une proposition pour une partie du code utilisant while :

# présentation du vocabulaire lié au problème
pres_d_une_carotte = on_beeper
planter_une_carotte = put_beeper
enlever_une_carotte = pick_beeper

def une_seule_carotte():
while pres_d_une_carotte():
enlever_une_carotte() # les enlever toutes !
planter_une_carotte() # replanter une seule !

Ce morceau de code est un peu plus court que le précédent (trois lignes dans la definition au lieu de six). De plus, il peut fonctionner même quand plus de deux graines ont germé au même endroit ! Essayez-le !
Rappelez vous que, dans la réalité, ce n'est pas une bonne idée d'enlever des germes et les replanter tout de suite après !

précédent Pas vrai !? - début - Étonnant - 1re partie suivant