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 interfejsem API języka Python VEX CTE.
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,whilelubforpoleceń.C Expandable — udostępnia miejsce do wpisywania kodu sterującego Pythona z wieloma gałęziami, takimi jak
if,eliflubelse.Boolean — Zapewnia miejsce na wpisanie kodu Pythona, który zwraca
TruelubFalse.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.
[] :: custom-switch
Blok Stack może zawierać jedną lub wiele linii kodu Pythona.
gdy uruchomiony :: hat events
[Move the 6-Axis Arm to a standard position at the start of the project.]
[arm.move_to(120, 120, 75, False)] :: custom-switch
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.
if [] :: custom-switch
koniec
Kod sterujący Pythona, którego można użyć w bloku C, obejmuje:
gdy uruchomiony :: hat events
[Check if the 6-Axis Arm can move to a position.]
if [if not arm.can_arm_reach_to(0, 0, 0):] :: custom-switch
wydrukuj [The 6-Axis Arm can't move to this position.] w konsoli ◀ i ustaw kursor na następny wiersz
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.
if [] :: custom-switch-expand
koniec
Kod sterujący Pythona, którego można użyć w bloku C Expandable, obejmuje:
gdy uruchomiony
[Check if the 6-Axis Arm can or can't move to a position.]
if [if not arm.can_arm_reach_to(0, 0, 0):] :: custom-switch-expand
wydrukuj [The 6-Axis Arm can't move to this position.] w konsoli ◀ i ustaw kursor na następny wiersz
else [else:] :: custom-switch-expand
wydrukuj [The 6-Axis Arm can move to this position.] w konsoli ◀ i ustaw kursor na następny wiersz
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.
<[] :: custom-switch>
Blok Boolean może zawierać warunek Pythona.
<[bumper_a.is_pressed()] :: custom-switch>
Blok Boole’a może również używać operatorów logicznych:
<[bumper_a.is_pressed() or bumper_b.is_pressed()] :: 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>=
<[drivetrain.get_heading()> 100] :: custom-switch>
gdy uruchomiony
[Check if the 6-Axis Arm can move to a position.]
jeśli <nie <[arm.can_arm_reach_to(0, 0, 0)] :: custom-switch>> to
wydrukuj [The 6-Axis Arm can't move to this position.] w konsoli ◀ i ustaw kursor na następny wiersz
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.
([] :: custom-switch)
Blok Reporter może zawierać kod Pythona zwracający wartość.
([arm.get_y()] :: custom-switch)
Operatorów matematycznych można używać w bloku Reporter:
([arm.get_y() + 45] :: custom-switch)
gdy uruchomiony
[Display the current y-position while the 6-Axis Arm moves.]
przesuń [ramię v] do pozycji x:(-100) y:(200) z:(100) [mm v] ◀ i nie czekaj
powtarzaj dopóki <[ramię v] zakończył ruch?>
wydrukuj ([arm.get_y()] :: custom-switch) w konsoli ◀ i ustaw kursor na następny wiersz
czekaj [0.25] sekund
koniec
Kapelusz#
Blok Kapelusz zapewnia miejsce na zdefiniowanie funkcji Pythona. Bloki dołączone do Kapelusza stają się ciałem tej funkcji.
[] :: 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.
[def function_name(parameter):] :: hat custom-switch
[def increment_y_100():] :: hat custom-switch
[Create a function to increment the 6-Axis Arm.]
zwiększ pozycję [ramię v] o x:[0] y:[100] z:[0] [mm v] ▶
gdy uruchomiony :: hat events
[increment_y_100()] :: custom-switch