Řízení#

Zavedení#

Řízení v Pythonu umožňuje robotovi sdělit, kdy má čekat, kdy má opakovat akce, jak se má rozhodovat a kdy má projekt ukončit.

Níže je uveden seznam všech ovládacích prvků, včetně metod a základních klíčových slov Pythonu:

  • wait – Pozastaví projekt na zadanou dobu.

  • for – Opakuje kód pro každou položku v sekvenci.

  • if – Spustí kód, pokud je podmínka pravdivá.

  • if/else – Spustí různý kód v závislosti na podmínce.

  • if/elif/else – Kontroluje více podmínek v pořadí.

  • while – Opakuje kód, dokud je podmínka pravdivá.

  • break – Okamžitě ukončí smyčku.

  • stop_program – Ukončí spuštěný program.

  • pass – Zástupný symbol použitý, když není nutná žádná akce.

Počkejte#

wait pozastaví na určitou dobu před přechodem na další řádek kódu.

Usage:
wait(time, units)

Parametry

Popis

time

Doba čekání, jako kladné celé číslo nebo desetinné číslo.

units

Jednotka, která představuje dobu čekání: MSEC (výchozí) – milisekundy nebo SECONDS

# Move right for one second, then stop
robot.move_at(90)
wait(1, SECONDS)
robot.stop_all_movement()

Pro#

for opakuje sadu akcí určitý početkrát. for lze použít k procházení položek v seznamech, n-ticích, slovnících, množinách, řetězcích nebo pro zadaný počet cyklů s range.

Použití:

for value in expression_list:
    pass

Součásti

Popis

value

Dočasná proměnná, která ukládá aktuální prvek v iteraci.

expression_list

Kolekce prvků, kterými se prochází smyčkou (např. seznam, řetězec, rozsah).

# Move in a square path.
for index in range(4):
    robot.move_for(50, 0)
    robot.turn_for(RIGHT, 90)

# Print each item in the list
colors = ["Red", "Green", "Blue"]

for color in colors:
    robot.screen.print(color)
    robot.screen.next_row()

Zobrazí tři objekty, které se tisknou na obrazovku.

Li#

if spustí odsazený blok kódu, pokud je podmínka True.

Používání:

if condition:
    pass

Součásti

Popis

condition

Výraz nebo proměnná, která se kontroluje při spuštění příkazu. Pokud je hodnota True, kód uvnitř bloku if se provede; pokud je hodnota False, blok se přeskočí.

# Kick when the screen is pressed
while True:
    if robot.screen.pressing():
        robot.kicker.kick(MEDIUM)
    wait(0.1, SECONDS)

Pokud/Jinak#

if a else určují, který odsazený blok kódu se spustí na základě toho, zda je podmínka True nebo False.

Používání:

if condition:
    pass
else:
    pass

Součásti

Popis

condition

Výraz nebo proměnná, která se kontroluje při spuštění příkazu. Pokud je hodnota True, provede se kód uvnitř bloku if ; pokud je hodnota False, provede se kód uvnitř bloku else.

# Show one emoji when the screen is pressed,
# and a different emoji when not pressed
while True:
    if robot.screen.pressing():
        robot.screen.show_emoji(EXCITED)

    else:
        robot.screen.show_emoji(BORED)
    
    wait(0.1, SECONDS)

Pokud/Elif/Jinak#

Struktura if/elif/else vybírá, který odsazený blok kódu se spustí na základě podmínek:

  • if spustí svůj blok, pokud je podmínka True.

  • elif kontroluje další podmínky pouze tehdy, pokud jsou všechny předchozí podmínky neplatné. FalseLze použít více příkazů elif.

  • else spustí svůj blok pouze tehdy, pokud žádná z předchozích podmínek není splněna True.

Používání:

if condition:
    pass
elif condition:
    pass
else:
    pass

Součásti

Popis

condition

Výraz nebo proměnná, která se kontroluje při spuštění příkazu. První podmínka, která je True určuje, který blok se provede; pokud žádná není True, spustí se else blok.

# Move the robot forward or reverse
# based on the position of the joystick
def when_axis_changed():
    position = controller.axis1.position()
    if position > 0:
        robot.move_at(0)
    elif position < 0:
        robot.move_at(180)
    else:
        robot.stop_all_movement()

controller.axis1.changed(when_axis_changed)

Zatímco#

while opakovaně spouští kód, dokud je podmínka TrueLze ji také použít jako „navždy“ s použitím True jako podmínky, nebo jako „čekat do“ přidáním not k podmínce, jak je znázorněno v níže uvedených příkladech.

Používání:

while condition:
    pass

Součásti

Popis

condition

Výraz nebo proměnná, která se kontroluje před každou iterací. Pokud je True, smyčka pokračuje; pokud je False, smyčka se zastaví.

# Keep the LEDs green while the robot is moving
robot.move_for(200, 0, wait=False)
while robot.is_move_active():
    robot.led.on(ALL_LEDS, GREEN)
    wait(50, MSEC)

robot.led.on(ALL_LEDS, BLACK)

while True:
    # Continually flash all LEDs red then green.
    robot.led.on(ALL_LEDS, RED)
    wait(0.5, SECONDS)
    robot.led.on(ALL_LEDS, GREEN)
    wait(0.5, SECONDS)

# Wait until the screen is pressed before
# turning off the LEDs
while not robot.screen.pressing():
    robot.led.on(ALL_LEDS, RED)
    wait(50, MSEC)

robot.led.on(ALL_LEDS, BLACK)

Přerušení#

break okamžitě ukončí smyčku. break lze použít k ukončení smyček, které by se jinak opakovaly donekonečna.

# Flash LEDs until the screen is pressed
while True:
    robot.led.on(ALL_LEDS, RED)
    wait(0.5, SECONDS)
    robot.led.on(ALL_LEDS, GREEN)
    wait(0.5, SECONDS)

    if robot.screen.pressing():
        break

# Turn the LEDs Off
robot.led.off(ALL_LEDS)

Zastavit program#

stop_program ukončí běžící projekt.

Usage:
robot.stop_program()

Parametry

Popis

Tato metoda nemá žádné parametry.

# Stop the project once the screen is pressed
while True:
    robot.led.on(ALL_LEDS, RED)
    wait(0.5, SECONDS)
    robot.led.on(ALL_LEDS, GREEN)
    wait(0.5, SECONDS)
    if robot.screen.pressing():
        robot.stop_program()

Přihrávka#

pass je zástupný symbol pro budoucí kód a lze jej použít k zamezení chyb v prázdných smyčkách, podmíněných výrazech a funkcích.

if condition:
    pass

def function():
    pass