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

# Turn right for one second, then stop
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)

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

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

Snímek obrazovky IQ Brain se třemi řádky bílého textu na levé straně obrazovky. První řádek je červený, druhý přímo pod ním zelený a třetí pod ním modrý.

-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 right when a button is pressed
while True:
    if brain.buttonCheck.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 right when a button is pressed, and remain still
# when the button is not pressed
while True:
    if brain.buttonCheck.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.

# Turn depending on what button is pressed
while True:
    if brain.buttonRight.pressing():
        drivetrain.turn(RIGHT)
    elif brain.buttonLeft.pressing():
        drivetrain.turn(LEFT)
    else:
        drivetrain.stop()
    wait(0.1, 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í.

# Keep the screen green while the robot is moving
drivetrain.drive_for(FORWARD, 200, MM, wait=False)
while drivetrain.is_moving():
    brain.screen.clear_screen(Color.GREEN)
    wait(50, MSEC)

brain.screen.clear_screen(Color.BLACK)

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

# Wait until a button is pressed to stop driving
drivetrain.drive(FORWARD)
while not brain.buttonCheck.pressing():
    wait(50, MSEC)
drivetrain.stop()

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 a button is pressed
while True:
    drivetrain.turn(RIGHT)
    if brain.buttonCheck.pressing():
        break
drivetrain.stop()
brain.play_sound(SoundType.POWER_DOWN)

zastavit_program#

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

Usage:
brain.program_stop()

Parametry

Popis

Tato metoda nemá žádné parametry.

# Stop the project after a button is pressed
while True:
    drivetrain.turn(RIGHT)
    if brain.buttonCheck.pressing():
        brain.program_stop()
    brain.play_sound(SoundType.POWER_DOWN)

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