Ří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 dostupných 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.

  • program_stop – 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

# Turn right for one second
drivetrain.turn(RIGHT)
wait(1, SECONDS)
drivetrain.stop()

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):
    drivetrain.drive_for(FORWARD, 100, MM)
    drivetrain.turn_for(RIGHT, 90)

-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čí.

# Turn after the Bumper Switch is pressed
while True:
    if bumper_switch.pressing():
        drivetrain.turn_for(RIGHT, 90)
    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.

# Turn when the Bumper Switch is pressed
while True:
    if bumper_switch.pressing():
        drivetrain.turn(RIGHT)
    else:
        drivetrain.stop()
    wait(0.1, SECONDS)

pokud/elif/else#

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.

# Change the Optical Sensor light while turning
    drivetrain.turn(RIGHT)
    while True:
        if drivetrain.heading() < 120:
            optical_sensor.set_light(LEDStateType.OFF)
        elif drivetrain.heading() < 240:
            optical_sensor.set_light_power(50, PERCENT)
        else:
            optical_sensor.set_light_power(100, PERCENT)
        wait(0.2, SECONDS)

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í.

# Turn when the Bumper Switch is pressed
while True:
    if bumper_switch.pressing():
        drivetrain.turn(RIGHT)
    else:
        drivetrain.stop()
    wait(0.1, SECONDS)

# Turn the other direction when the screen is pressed
drivetrain.turn(LEFT)
while not brain.screen.pressing():
    wait(0.2, SECONDS)
drivetrain.turn(RIGHT)

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.

# Stop turning after pressing the screen
while True:
    drivetrain.turn(RIGHT)
    if brain.screen.pressing():
        break
    wait(0.2, SECONDS)
drivetrain.stop()

zastavení_programu#

program_stop ukončí spuštěný projekt.

Usage:
brain.program_stop()

Parametry

Popis

Tato metoda nemá žádné parametry.

# Stop the project after pressing the screen
while True:
    drivetrain.turn(RIGHT)
    if brain.screen.pressing():
        break
    wait(0.2, SECONDS)
brain.program_stop()

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