Contrôle#
Introduction#
Le contrôle en Python vous permet d’indiquer au robot quand attendre, quand répéter des actions, comment prendre des décisions et quand mettre fin au projet.
Vous trouverez ci-dessous une liste des contrôles disponibles, y compris les méthodes et les mots-clés principaux de Python :
wait– Met le projet en pause pendant une durée donnée.for– Répète le code pour chaque élément d’une séquence.if– Exécute le code si une condition est vraie.if/else– Exécute un code différent en fonction d’une condition.if/elif/else– Vérifie plusieurs conditions dans l’ordre.while– Répète le code tant qu’une condition est vraie.break– Sort immédiatement d’une boucle.quit– Met fin au projet en cours.pass– Espace réservé utilisé lorsqu’aucune action n’est nécessaire.
wait#
wait fait une pause pendant une durée spécifique avant de passer à la ligne de code suivante.
Usage:
wait(time, units)
Paramètres |
Description |
|---|---|
|
Le temps d’attente, sous forme de nombre entier positif ou décimal. |
|
L’unité représentant le temps d’attente : |
# Fly for 1 second.
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
for#
for répète un ensemble d’actions un nombre spécifique de fois. for peut être utilisé pour parcourir les éléments des listes, tuples, dictionnaires, ensembles, chaînes de caractères, ou pour un nombre spécifié de boucles avec range.
Utilisation :
for value in expression_list:
pass
Composants |
Description |
|---|---|
|
Une variable temporaire qui stocke l’élément courant de l’itération. |
|
La collection d’éléments parcourus en boucle (par exemple, liste, chaîne de caractères, plage). |
# Move back and forth four times then land.
drone.take_off(climb_to=500)
for i in range(4):
drone.move_for(direction=0, distance=500, velocity=50, units=MM)
wait(1, SECONDS)
drone.move_for(direction=180, distance=500, velocity=50, units=MM)
wait(1, SECONDS)
drone.land()
# Print each item in a list.
colors = ["Red", "Green", "Blue"]
for color in colors:
controller.screen.print(color)
controller.screen.next_row()
if#
if exécute le bloc de code indenté si la condition est True.
Usage:
if condition:
pass
Composants |
Description |
|---|---|
|
Une expression ou une variable vérifiée lors de l’exécution de l’instruction. Si sa valeur est Vrai |
# Take a picture when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
# Move with controller
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
if controller.button5.pressing():
drone.camera.capture_image(FORWARD_CAMERA)
wait(5, MSEC)
if/else#
if et else déterminent quel bloc de code indenté s’exécute en fonction de si la condition est True ou False.
Usage:
if condition:
pass
else:
pass
Composants |
Description |
|---|---|
|
An expression or variable that is checked when the statement runs. If it is |
# Climb when the left joystick is moved up.
drone.take_off(climb_to=500)
while True:
if controller.axis1.position() > 0:
drone.climb(direction=UP, velocity=50)
else:
drone.hover()
wait(5, MSEC)
if/elif/else#
La structure if/elif/else sélectionne le bloc de code indenté qui s’exécute en fonction de conditions :
ifexécute son bloc si la condition estTrue.elifvérifie les conditions supplémentaires uniquement si toutes les conditions précédentes sontFalse. Plusieurselifinstructions peuvent être utilisées.elseexécute son bloc uniquement si aucune des conditions précédentes n’estTrue.
Usage:
if condition:
pass
elif condition:
pass
else:
pass
Composants |
Description |
|---|---|
|
An expression or variable that is checked when the statement runs. The first condition that is |
# Move the drone up or down based on the position of the joystick.
drone.take_off(climb_to=500)
while True:
position = controller.axis1.position()
if position > 0:
drone.climb(direction=UP, velocity=50)
elif position < 0:
drone.climb(direction=DOWN, velocity=50)
else:
drone.hover()
wait(5, MSEC)
while#
while repeatedly runs code as long as the condition is True. It can also be used like a “forever” by using True as the condition, or a “wait until” by adding not to the condition, as shown in the examples below.
Usage:
while condition:
pass
Composants |
Description |
|---|---|
|
Une expression ou une variable vérifiée avant chaque itération. Si elle vaut |
# Hover at 200 mm.
drone.take_off(climb_to=500)
while drone.range.get_distance(DOWNWARD_RANGE, MM) > 200:
drone.climb(direction=DOWN, velocity=10)
drone.hover()
wait(3, SECONDS)
drone.land()
break#
break sort immédiatement d’une boucle. break peut être utilisé pour interrompre des boucles qui, autrement, tourneraient indéfiniment.
# Land when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
# Move with controller
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
if controller.button5.pressing():
break
wait(5, MSEC)
drone.land()
quit#
quit met fin à un projet en cours.
Usage:
quit()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
# Land when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
# Move with controller
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
if controller.button5.pressing():
quit()
wait(5, MSEC)
drone.land()
pass#
pass est un espace réservé pour du code futur et peut être utilisé pour éviter les erreurs dans les boucles vides, les conditions et les fonctions.
if condition:
pass
def function():
pass