Przełącznik#

Wstęp#

Bloki Switch pomagają uczniom w przejściu z kodowania blokowego do kodowania tekstowego. Dzięki blokom Switch uczniowie mogą wpisywać kod Pythona bezpośrednio w projekcie blokowym – pisząc polecenia, warunki, wartości lub definicje funkcji – jednocześnie budując resztę projektu za pomocą bloków. Poszczególne bloki można również konwertować na odpowiadające im polecenia Pythona.

Aby dowiedzieć się, jak wpisywać polecenia, metody i operatory języka Python, zapoznaj się z VEX 123 Python API.

Ponieważ bloki Switch zawierają kod Pythona, pisownia, interpunkcja i wcięcia muszą być poprawne, aby projekt działał zgodnie z oczekiwaniami.

Poniżej znajduje się lista wszystkich bloków Switch:

Przełączanie bloków — dodawanie kodu Pythona do projektu bloków.

  • Stack — udostępnia miejsce do wpisywania poleceń języka Python, które są uruchamiane sekwencyjnie z innymi blokami stosu.

  • Blok C — Zapewnia miejsce na wpisanie kodu sterującego języka Python, takiego jak if, whilelub for poleceń.

  • C Expandable — udostępnia miejsce do wpisywania kodu sterującego Pythona z wieloma gałęziami, takimi jak if, eliflub else.

  • Boolean — Zapewnia miejsce na wpisanie kodu Pythona, który zwraca True lub False.

  • Reporter — udostępnia miejsce do wpisania kodu Pythona zwracającego wartość.

  • Hat — Zapewnia miejsce na zdefiniowanie funkcji języka Python.

Stos#

Blok Stack udostępnia miejsce do wpisywania poleceń języka Python, które są uruchamiane sekwencyjnie z innymi blokami stosu.

Blok stosu#
[] :: custom-switch

Blok Stack może zawierać jedną lub wiele linii kodu Pythona.

Po uruchomieniu używa bloku stosu do jazdy do przodu, oczekiwania, a następnie zatrzymania.#
gdy uruchomiony :: hat events
[Drive forward, then stop.]
[robot.drive(FORWARD)] :: custom-switch
czekaj [2] sekund
zatrzymaj jazdę

Blok C#

Blok C zapewnia miejsce na wpisanie kodu sterującego Pythona, takiego jak if, whilelub for instrukcji. Bloki umieszczone w Bloku C działają jako część tej struktury sterującej Pythona.

Blok C#
if [] :: custom-switch
koniec

Kod sterujący Pythona, którego można użyć w bloku C, obejmuje:

Po uruchomieniu używa bloku C do jazdy do przodu po naciśnięciu lewego przycisku.#
gdy uruchomiony :: hat events
[Drive forward whenever the left button is pressed.]
zawsze
if [if robot.get_button(LEFT):] :: custom-switch
jedź [do przodu v] przez [200] [mm v] ▶
koniec
koniec

C Rozszerzalny#

Blok C Expandable udostępnia miejsce do wpisywania kodu sterującego Pythona z wieloma gałęziami, takimi jak if, eliflub elseDodatkowe gałęzie można dodać, klikając strzałkę plus.

Blok rozszerzalny C#
if [] :: custom-switch-expand
koniec

Kod sterujący Pythona, którego można użyć w bloku C Expandable, obejmuje:

Po uruchomieniu używa bloku C Expandable, aby zatrzymać się po wykryciu obiektu i uruchomić program w przeciwnym razie.#
gdy uruchomiony :: hat events
[Drive forward if there is not an object in the way.]
zawsze
if [if robot.eye.is_object_detected():] :: custom-switch-expand
zatrzymaj jazdę
else [else:] :: custom-switch-expand
jedź [do przodu v] przez [200] [mm v] ▶
koniec
koniec

Boole’a#

Blok Boolean zapewnia miejsce do wpisania kodu Pythona, który zwraca True lub FalseMożna go umieścić wewnątrz bloków z sześciokątnymi polami wejściowymi.

Blok Boole’a#
<[] :: custom-switch>

Blok Boolean może zawierać warunek Pythona.

Blok boolowski z warunkiem Pythona#
<[robot.eye.is_object_detected()] :: custom-switch>

Blok Boole’a może również używać operatorów logicznych:

Blok boolowski z operatorem logicznym Pythona#
<[robot.get_button(LEFT) or robot.eye.is_object_detected()] :: custom-switch>

Blok Boole’a może używać operatorów porównania do porównywania wartości:

  • Większe niż: >

  • Mniej niż: <

  • Równe: ==

  • Inne operatory porównania obejmują <=, !=, i >=

Blok boolowski z operatorem porównania w Pythonie#
<[robot.eye.get_brightness()> 50] :: custom-switch>
Po uruchomieniu używa bloku Boole’a do jazdy do przodu za każdym razem, gdy naciśnięty zostanie lewy przycisk.#
gdy uruchomiony :: hat events
[Drive forward whenever the left button is pressed.]
zawsze
jeśli <[robot.get_button(LEFT)] :: custom-switch> to
jedź [do przodu v] przez [200] [mm v] ▶
koniec
koniec

Reporter#

Blok Reporter zapewnia miejsce na wpisanie kodu Pythona zwracającego wartość. Można go umieścić w blokach z cyklicznymi danymi wejściowymi.

Blokada reportera#
([] :: custom-switch)

Blok Reporter może zawierać kod Pythona zwracający wartość.

Blok reportera z kodem Pythona zwracającym wartość#
([robot.eye.get_brightness()] :: custom-switch)

Operatorów matematycznych można używać w bloku Reporter:

  • Dodawanie: +

  • Odejmowanie: -

  • Podział: /

  • Mnożenie: *

Blok reportera z dodatkiem Pythona#
([robot.eye.get_brightness() + 10] :: custom-switch)
Po uruchomieniu drukuje jasność oczu.#
gdy uruchomiony :: hat events
[Print the eye brightness.]
wydrukuj ([robot.eye.get_brightness()] :: custom-switch) ▶

Kapelusz#

Blok Kapelusz zapewnia miejsce na zdefiniowanie funkcji Pythona. Bloki dołączone do Kapelusza stają się ciałem tej funkcji.

Blok na kapelusze#
[] :: hat custom-switch

Wpisz definicję funkcji Pythona w bloku Kapelusz. Parametry należy umieścić w nawiasach. Jeśli funkcja nie używa parametrów, użyj pustych nawiasów.

Blok kapelusza z definicją funkcji Pythona#
[def function_name(parameter):] :: hat custom-switch
Po uruchomieniu używa bloku Hat do zdefiniowania i wywołania funkcji.#
[def drive_200():] :: hat custom-switch
[Define a custom function using a Hat block.]
jedź [do przodu v] przez (200) [mm v] ▶

gdy uruchomiony :: hat events
[drive_200()] :: custom-switch