控制#
介绍#
控件包括用于计时、程序流程、条件逻辑和项目终止的方法。这些控件允许您暂停执行、创建循环、定义逻辑路径以及结束程序。以下是可用控件的列表,包括方法和核心 Python 关键字:
wait– Pauses execution for a given number of milliseconds or seconds.for– Repeats code for each item in a sequence.if– Executes 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 method.
Usage:
wait(time, units)
参数 |
描述 |
|---|---|
|
等待的时间量,以正整数表示。 |
|
The unit to represent the time:
|
# Fly for 1 second.
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
for#
for iterates over a sequence (such as a list, tuple, dictionary, set, or string) or any iterable object. It executes the block of code once for each item in the sequence.
使用量:
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 executes the indented block of code if the condition evaluates as True.
用法:
if condition:
pass
参数 |
描述 |
|---|---|
|
An expression or variable that is evaluated when the statement runs. If it evaluates as |
# 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 evaluates as True or False.
用法:
if condition:
pass
else:
pass
参数 |
描述 |
|---|---|
|
An expression or variable that is evaluated when the statement runs. If it evaluates as |
# 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 evaluates asTrue.elifchecks additional conditions only if all previous conditions evaluated asFalse. Multipleelifstatements can be used.elseruns its block only if none of the previous conditions evaluated asTrue.
用法:
if condition:
pass
elif condition:
pass
else:
pass
参数 |
描述 |
|---|---|
|
An expression or variable that is evaluated when the statement runs. The first condition that evaluates as |
# 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 methods as long as the condition is True. It can also be used like a “Wait until” by adding not to the condition, as shown in the example below.
用法:
while condition:
pass
参数 |
描述 |
|---|---|
|
An expression or variable that is evaluated before each iteration. If it evaluates as |
# 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.
# 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