Valdymas#
Įvadas#
„Python“ valdymas leidžia nurodyti robotui, kada laukti, kada kartoti veiksmus, kaip priimti sprendimus ir kada baigti projektą.
Žemiau pateikiamas galimų valdiklių sąrašas, įskaitant metodus ir pagrindinius „Python“ raktinius žodžius:
wait– Pristabdo projektą nurodytam laikui.for– Kartoja kodą kiekvienam sekos elementui.if– Paleidžia kodą, jei sąlyga yra teisinga.if/else– Paleidžia skirtingą kodą, priklausomai nuo sąlygos.if/elif/else– Tikrina kelias sąlygas iš eilės.while– Kartoja kodą, kol sąlyga yra teisinga.break– Nedelsiant išeina iš ciklo.quit– Baigia vykdomą projektą.pass– Vietos rezervavimo ženklas, naudojamas, kai nereikia atlikti jokių veiksmų.
wait#
wait padaro tam tikrą laiko tarpą pauzę prieš pereinant prie kitos kodo eilutės.
Usage:
wait(time, units)
Parametrai |
Aprašymas |
|---|---|
|
Laukimo laikas, nurodytas kaip teigiamas sveikasis skaičius arba dešimtainė trupmena. |
|
Laukimo laiką nurodantis vienetas: |
# Fly for 1 second.
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
for#
for pakartoja veiksmų rinkinį tam tikrą skaičių kartų. for gali būti naudojama norint cikliškai peržiūrėti sąrašų, rinkinių, žodynų, rinkinių, eilučių elementus arba tam tikrą ciklų skaičių su range.
Naudojimas:
for value in expression_list:
pass
Komponentai |
Aprašymas |
|---|---|
|
Laikinas kintamasis, kuriame saugomas dabartinis iteracijoje esantis elementas. |
|
Cikle apžvelgiamų elementų rinkinys (pvz., sąrašas, eilutė, diapazonas). |
# 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 paleidžiamas įtrauktas kodo blokas, jei sąlyga yra True.
Naudojimas:
if condition:
pass
Komponentai |
Aprašymas |
|---|---|
|
Išraiška arba kintamasis, kuris tikrinamas vykdant sakinį. Jei jis yra |
# 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 ir else nustato, kuris įtrauktas kodo blokas vykdomas, remiantis tuo, ar sąlyga yra True , ar False.
Naudojimas:
if condition:
pass
else:
pass
Komponentai |
Aprašymas |
|---|---|
|
Išraiška arba kintamasis, kuris tikrinamas vykdant sakinį. Jei jis yra |
# 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#
if/elif/else struktūra parenka, kuris įtrauktas kodo blokas bus vykdomas pagal sąlygas:
if, vykdo savo bloką, jei sąlyga yraTrue.eliftikrina papildomas sąlygas tik tuo atveju, jei visos ankstesnės sąlygos yraFalseGalima naudoti keliselifteiginius.elsevykdo savo bloką tik tuo atveju, jei nė viena iš ankstesnių sąlygų nėraTrue.
Naudojimas:
if condition:
pass
elif condition:
pass
else:
pass
Komponentai |
Aprašymas |
|---|---|
|
Išraiška arba kintamasis, kuris tikrinamas vykdant sakinį. Pirmoji sąlyga, kuri yra |
# 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 pakartotinai vykdo kodą tol, kol sąlyga yra TrueJi taip pat gali būti naudojama kaip „amžinai“, naudojant True kaip sąlygą, arba „laukti iki“, pridedant not prie sąlygos, kaip parodyta toliau pateiktuose pavyzdžiuose.
Naudojimas:
while condition:
pass
Komponentai |
Aprašymas |
|---|---|
|
Išraiška arba kintamasis, kuris tikrinamas prieš kiekvieną iteraciją. Jei jis yra |
# 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 iš karto išeina iš ciklo. break gali būti naudojama norint išeiti iš ciklų, kurie kitu atveju kartotųsi amžinai.
# 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 užbaigia vykdomą projektą.
Usage:
quit()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# 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 yra vietos žymeklis būsimam kodui ir gali būti naudojamas siekiant išvengti klaidų tuščiuose cikluose, sąlyginėse sąlygose ir funkcijose.
if condition:
pass
def function():
pass