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

  • stop_project – Ukončí spuštěný projekt.

  • 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

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

# VR threads — Do not delete
vr_thread(main)

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

def main():
    # Move in a square path
    for index in range(4):
        drivetrain.drive_for(FORWARD, 100, MM)
        drivetrain.turn_for(RIGHT, 90, DEGREES)

# VR threads — Do not delete
vr_thread(main)

def main():
    # Print each item in the list
    colors = ["Red", "Green", "Blue"]

    for color in colors:
        brain.print(color)
        brain.new_line()

# VR threads — Do not delete
vr_thread(main)

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

def main():
    # Turn right until facing south
    while True:
        if drivetrain.heading(DEGREES) < 180:
            drivetrain.turn_for(RIGHT, 90, DEGREES)
        wait(0.1, SECONDS)

# VR threads — Do not delete
vr_thread(main)

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.

def main():
    # Drive after turning around
    while True:
        if drivetrain.rotation(DEGREES) < 180:
            drivetrain.turn_for(RIGHT, 90, DEGREES)
        else:
            drivetrain.drive(FORWARD)
        wait(0.1, SECONDS)

# VR threads — Do not delete
vr_thread(main)

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.

def main():
    # Move depending on the detected color
    while True:
        if front_eye.detect(RED):
            drivetrain.drive(FORWARD)
        elif front_eye.detect(GREEN):
            drivetrain.drive(REVERSE)
        else:
            drivetrain.turn(RIGHT)
        wait(0.1, SECONDS)

# VR threads — Do not delete
vr_thread(main)

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

def main():
    while True:
        # Move in a square path forever
        drivetrain.drive_for(FORWARD, 150, MM)
        drivetrain.turn_for(RIGHT, 90, DEGREES)

# VR threads — Do not delete
vr_thread(main)

def main():
    # Wait until an object is detected to stop driving
    drivetrain.drive(FORWARD)
    while not front_distance.found_object():
        wait(50, MSEC)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

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.

def main():
    # Stop turning after a button is pressed
    while True:
        drivetrain.turn(RIGHT)
        if front_distance.found_object():
            break
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

stop_project#

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

Usage:
stop_project()

Parametry

Popis

Tato metoda nemá žádné parametry.

def main():
    # Stop the project after a button is pressed
    while True:
        drivetrain.turn(RIGHT)
        if front_distance.found_object():
            stop_program()
        drivetrain.drive(FORWARD)

# VR threads — Do not delete
vr_thread(main)

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