Ελεγχος#
Εισαγωγή#
Το Control στην Python σάς επιτρέπει να λέτε στο ρομπότ πότε να περιμένει, πότε να επαναλαμβάνει ενέργειες, πώς να λαμβάνει αποφάσεις και πότε να τερματίζει το έργο.
Παρακάτω είναι μια λίστα με τα διαθέσιμα στοιχεία ελέγχου, συμπεριλαμβανομένων μεθόδων και βασικών λέξεων-κλειδιών Python:
wait– Pauses the project for a given time.for– Repeats code for each item in a sequence.if– Runs code if a condition is true.if/else– Runs different code depending on a condition.if/elif/else– Checks multiple conditions in order.while– Repeats code while a condition is true.break– Exits a loop immediately.quit– Ends the running project.pass– Placeholder used when no action is needed.
wait#
wait pauses for a specific amount of time before moving to the next line of code.
Usage:
wait(time, units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Ο χρόνος αναμονής, ως θετικός ακέραιος αριθμός ή δεκαδικός αριθμός. |
|
The unit that represents the wait time: |
# Fly for 1 second.
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
for#
for repeats a set of actions a specific number of times. for can be used to loop through items in lists, tuples, dictionaries, sets, strings, or for a specified amount of loops with range.
Χρήση:
for value in expression_list:
pass
Στοιχεία |
Περιγραφή |
|---|---|
|
Μια προσωρινή μεταβλητή που αποθηκεύει το τρέχον στοιχείο στην επανάληψη. |
|
Η συλλογή στοιχείων που επαναλαμβάνονται (π.χ. λίστα, συμβολοσειρά, εύρος). |
# 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 runs the indented block of code if the condition is True.
Χρήση:
if condition:
pass
Στοιχεία |
Περιγραφή |
|---|---|
|
An expression or variable that is checked when the statement runs. If it is |
# 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 and else determine which indented block of code runs based on whether the condition is True or False.
Χρήση:
if condition:
pass
else:
pass
Στοιχεία |
Περιγραφή |
|---|---|
|
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#
The if/elif/else structure selects which indented block of code runs based on conditions:
ifruns its block if the condition isTrue.elifchecks additional conditions only if all previous conditions areFalse. Multipleelifstatements can be used.elseruns its block only if none of the previous conditions areTrue.
Χρήση:
if condition:
pass
elif condition:
pass
else:
pass
Στοιχεία |
Περιγραφή |
|---|---|
|
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.
Χρήση:
while condition:
pass
Στοιχεία |
Περιγραφή |
|---|---|
|
An expression or variable that is checked before each iteration. If it is |
# 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 exits a loop immediately. break can be used to leave loops that otherwise would loop forever.
# 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 ends a running project.
Usage:
quit()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
# 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 is a placeholder for future code and can be used to avoid errors in empty loops, conditionals, and functions.
if condition:
pass
def function():
pass