Kontrola#

Wstęp#

Sterowanie w Pythonie pozwala Ci powiedzieć robotowi, kiedy ma czekać, kiedy powtórzyć czynności, jak podejmować decyzje i kiedy zakończyć projekt.

Poniżej znajduje się lista wszystkich kontrolek, łącznie z metodami i podstawowymi słowami kluczowymi języka Python:

  • wait – Wstrzymuje projekt na określony czas.

  • for – Powtarza kod dla każdego elementu w sekwencji.

  • if – Uruchamia kod, jeśli warunek jest prawdziwy.

  • if/else – uruchamia inny kod w zależności od warunku.

  • if/elif/else – Sprawdza wiele warunków w kolejności.

  • while – Powtarza kod, dopóki warunek jest spełniony.

  • break – Natychmiast opuszcza pętlę.

  • stop_program – Kończy działający program.

  • pass – Symbol zastępczy używany, gdy nie jest wymagana żadna akcja.

Czekać#

wait zatrzymuje się na określony czas przed przejściem do następnego wiersza kodu.

Usage:
wait(time, units)

Parametry

Opis

time

Czas oczekiwania, wyrażony jako dodatnia liczba całkowita lub ułamek dziesiętny.

units

Jednostka reprezentująca czas oczekiwania: MSEC (domyślnie) – milisekundy lub SECONDS

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

Dla#

for powtarza zestaw działań określoną liczbę razy. for można stosować do pętli po elementach na listach, krotkach, słownikach, zestawach, ciągach znaków lub do wykonania określonej liczby pętli z range.

Użycie:

for value in expression_list:
    pass

Komponenty

Opis

value

Tymczasowa zmienna przechowująca bieżący element iteracji.

expression_list

Zbiór elementów podlegających pętli (np. lista, ciąg znaków, zakres).

# 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()

Wyświetla trzy obiekty drukowane na ekranie.

Jeśli#

if uruchamia wcięty blok kodu, jeśli warunek wynosi True.

Stosowanie:

if condition:
    pass

Komponenty

Opis

condition

Wyrażenie lub zmienna sprawdzana podczas wykonywania instrukcji. Jeśli wynosi True, wykonywany jest kod wewnątrz bloku if ; jeśli wynosi False, blok jest pomijany.

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

Jeśli/W przeciwnym razie#

if i else określa, który wcięty blok kodu zostanie uruchomiony na podstawie tego, czy warunek jest True lub False.

Stosowanie:

if condition:
    pass
else:
    pass

Komponenty

Opis

condition

Wyrażenie lub zmienna sprawdzana podczas wykonywania instrukcji. Jeśli wartość wynosi True, wykonywany jest kod wewnątrz bloku if ; jeśli wartość wynosi False, wykonywany jest kod wewnątrz 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)

Jeśli/Elif/W przeciwnym razie#

Struktura if/elif/else wybiera, który wcięty blok kodu zostanie uruchomiony na podstawie warunków:

  • if uruchamia swój blok, jeśli warunek jest True.

  • elif sprawdza dodatkowe warunki tylko wtedy, gdy wszystkie poprzednie warunki są fałszywe False. Można użyć wielu instrukcji elif.

  • else uruchamia blok tylko wtedy, gdy żaden z poprzednich warunków nie jest spełniony True.

Stosowanie:

if condition:
    pass
elif condition:
    pass
else:
    pass

Komponenty

Opis

condition

Wyrażenie lub zmienna sprawdzana podczas wykonywania instrukcji. Pierwszy warunek, który wynosi True określa, który blok zostanie wykonany; jeśli żaden z nich nie ma wartości True, uruchamiany jest blok else.

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

Chwila#

while powtarza kod, dopóki warunek jest TrueMożna go również używać jako „forever”, używając True jako warunku, lub jako „wait until”, dodając not do warunku, jak pokazano w poniższych przykładach.

Stosowanie:

while condition:
    pass

Komponenty

Opis

condition

Wyrażenie lub zmienna sprawdzana przed każdą iteracją. Jeśli wynosi True, pętla jest kontynuowana; jeśli wynosi False, pętla się zatrzymuje.

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

Przerwa#

break powoduje natychmiastowe wyjście z pętli. break może zostać użyte do opuszczenia pętli, która w przeciwnym razie działałaby w nieskończoność.

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

Zatrzymaj program#

stop_program kończy działający projekt.

Usage:
robot.stop_program()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# 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()

Przechodzić#

Przebieg pass jest symbolem zastępczym dla przyszłego kodu i można go używać w celu uniknięcia błędów w pustych pętlach, warunkach i funkcjach.

if condition:
    pass

def function():
    pass