HomeTortue graphiqueGPanelGameGrid WebTigerPython
 Python - Online
repeat
Deutsch   English   Français   

3. RÉPÉTER DES COMMANDES, FONCTIONS

 

 

TU APPRENDRAS ICI...

 

Comment un robot peut répéter certaines séquences de commandes et comment tu peux mieux structurer tes programmes à l'aide de blocs de code nommés (fonctions).

 

 

EXEMPLES

 


ExEmple 1: Parcourir un carré

Pour parcourir un carré, le robot doit avancer sur une certaine distance et tourner de 90°, quatre fois de suite. Pour répéter ces mouvements, tu utilises une boucle repeat. Celle-ci commence par le mot-clé repeat, suivi du nombre de répétitions et de deux-points. Les commandes à répéter doivent être indentées.

 

Programme:

from mbrobot import *
#from mbrobot_plus import *
            
repeat 4: 
    forward()
    delay(2000)
    left()
    delay(550)
stop()
► Copy to clipboard

Contrairement à la tortue graphique, qui peut dessiner un carré avec une grande précision, il est difficile pour un robot réel d'avancer parfaitement en ligne droite et de tourner exactement à angle droit. Cela correspond à la réalité : aucune voiture ne roule parfaitement droit lorsque ses roues restent dans une position fixe, c'est-à-dire lorsque la direction est bloquée. Il faut constamment effectuer de petites corrections. C'est pourquoi les robots sont équipés de capteurs qui les aident à corriger ces imprécisions. Ne passe donc pas trop de temps à essayer de faire parcourir un carré parfait à ton robot.


 

Exemple 2: Répéter des commandes indéfiniment
Dans de nombreuses situations, un robot effectue certaines tâches « indéfiniment », c'est-à-dire jusqu'à ce qu'il soit éteint ou que le programme soit interrompu. C'est le cas, par exemple, lorsqu'il doit transmettre continuellement des données provenant de ses capteurs. Pour cela, on utilise une boucle repeat-Loopsans indiquer le nombre de répétitions.

Dans ton exemple, le robot se rend successivement et indéfiniment à quatre endroits situés sur des trajets perpendiculaires les uns aux autres. Après chaque déplacement, il revient en marche arrière à son point de départ.

 

Programme:

from mbrobot import *
#from mbrobot_plus import *
            
repeat: 
    forward()
    delay(2000)
    backward()
    delay(2000)
    left()
    delay(550)
► Copy to clipboard

Il est utile de savoir comment interrompre un programme en cours d'exécution : le moyen le plus simple consiste à couper l'alimentation électrique du robot.


 

Exemple 3: Structurer les programmes avec ses propres fonctions
Les blocs de code nommés, appelés fonctions en Python, te permettent de mieux structurer tes programmes. Il s'agit d'une technique de programmation importante, car les fonctions permettent de décomposer des programmes complexes en petits sous-programmes plus faciles à programmer. Les fonctions sont également très utiles lorsqu'un même bloc de code doit être utilisé plusieurs fois.

La définition d'une fonction commence toujours par le mot-clé def.Celui-ci est suivi du nom de la fonction, de parenthèses pour les paramètres et de deux-points. Les instructions qui constituent le corps de la fonction doivent être indentées. La fonction est ensuite appelée dans le programme principal.

Dans ton exemple, tu définis une fonction blink(), qui fait clignoter une fois la LED rouge. Dans le programme principal, le robot effectue un mouvement similaire à celui de l'exemple précédent. Avant de reculer, il s'arrête, fait clignoter la LED deux fois, puis revient en marche arrière à son point de départ.

Programme:

from mbrobot import *
#from mbrobot_plus import *

def blink():
    setLED(1)
    delay(500)
    setLED(0)
    delay(500)

repeat 4:
    forward()
    delay(2000)
    stop()
    blink()
    blink()
    backward()
    delay(2000)
    left()
    delay(550)
stop()    
► Copy to clipboard
 

 



 

À RETENIR...

 

Pour répéter un bloc de code n fois, tu utilises une boucle repeat :
repeat n: 
    Instructions 
 

Pour répéter un bloc de code indéfiniment, tu utilises une boucle infinie :
repeatn: 
    Instructions 
 

Les lignes indentées sont répétées jusqu'à ce que le programme soit interrompu. Avec les fonctions, tu peux mieux structurer tes programmes et éviter de dupliquer du code.

Il faut distinguer la définition d'une fonction de son appel.

Définition :
def name(): 
    Instructions 
Appel :
name()

 

 

EXERCICES

 

 

1.

Le robot démarre au centre, avance sur une courte distance, effectue un demi-tour de 180° et revient à son point de départ. Il effectue ensuite un nouveau demi-tour pour retrouver son orientation initiale. Puis, il tourne d'environ 120° vers la droite. Il répète cette séquence de commandes trois fois.

 


2.

Le robot doit parcourir « indéfiniment » un cercle en suivant d'abord un arc vers la gauche, puis un cercle en suivant un arc vers la droite.

 


3.

Définis une fonction step() qui permet à ton robot de parcourir une marche d'escalier. Appelle ensuite cette fonction trois fois afin que le robot suive la trajectoire représentée sur la figure ci-contre.

 

 

4.

Le robot se déplace « indéfiniment » sur une trajectoire circulaire de rayon 0,2 m. Chaque fois qu'il a effectué un tour complet, il s'arrête pendant 3 secondes et active l'alarme durant cet arrêt. Il désactive ensuite l'alarme et reprend son déplacement sur la trajectoire circulaire.