Выключатель#

Введение#

Блоки Switch помогают учащимся перейти от блочного программирования к текстовому. С помощью блоков Switch учащиеся могут вводить код Python непосредственно внутри проекта, состоящего из блоков — писать команды, условия, значения или определения функций — продолжая при этом создавать остальную часть проекта с помощью блоков. Отдельные блоки также можно преобразовать в соответствующие им команды Python.

Чтобы узнать, как вводить команды, методы и операторы Python, см. VEX AIM Python API.

Поскольку блоки Switch содержат код Python, для корректной работы проекта необходимо правильно указать орфографические, пунктуационные и отступы.

Ниже приведён список всех блоков Switch:

Переключение блоков — добавление кода Python в проект Blocks.

  • Стек — Предоставляет место для ввода команд Python, которые выполняются последовательно с другими блоками стека.

  • Блок C — Предоставляет место для ввода управляющего кода Python, например, if, whileили for операторов.

  • C Expandable — Предоставляет место для ввода управляющего кода Python с несколькими ветвями, например, if, elifили else.

  • Boolean — Предоставляет место для ввода кода Python, который возвращает True или False.

  • Репортер — Предоставляет место для ввода кода Python, который возвращает значение.

  • Шляпа — Предоставляет место для определения функции Python.

Куча#

Блок Стек предоставляет место для ввода команд Python, которые выполняются последовательно с другими блоками стека.

Блок стека#
[] :: custom-switch

Блок Stack может содержать одну или несколько строк кода Python.

При запуске робот использует блок Stack для перемещения вперед.#
при запуске
[Move forward 400 mm.]
[robot.move_for(400, 0)] :: custom-switch

Блок С#

Блок C предоставляет место для ввода управляющего кода Python, например, операторов if, whileили for Блоки, помещенные внутрь блока C, выполняются как часть этой управляющей структуры Python.

Блок С#
if [] :: custom-switch
конец

К управляющему коду Python, который можно использовать в блоке C, относятся:

При запуске используется блок C для проверки нажатия на экран.#
при запуске
[Continuously turn right until the screen is pressed.]
поворот [вправо v]
вечно
if [if robot.screen.pressing():] :: custom-switch
вывести [Screen was pressed!] на экран ▶
остановить все движения
конец
конец

C Расширяемый#

Блок C Expandable предоставляет место для ввода управляющего кода Python с несколькими ветвями, например, if, elif, или elseДополнительные ветви можно добавить, выбрав стрелку плюса.

Расширяемый блок C#
if [] :: custom-switch-expand
конец

В блоке C Expandable можно использовать следующий управляющий код на Python:

При запуске робот использует расширяемый блок C для перемещения до тех пор, пока не получит спортивный мяч.#
при запуске
[Continuously move forward until the robot has a sports ball.]
вечно
if [if robot.has_sports_ball():] :: custom-switch-expand
вывести [Sports ball found!] на экран ▶
остановить все движения
else [else:]
движение [вперёд v]
конец
конец

Логический#

Блок Boolean предоставляет место для ввода кода Python, возвращающего True или FalseЕго можно размещать внутри блоков с шестиугольными входными данными.

Логический блок#
<[] :: custom-switch>

Блок логических значений (Boolean) может содержать условие Python.

Логический блок с условием Python#
<[robot.screen.pressing()] :: custom-switch>

В блоке логических значений также могут использоваться логические операторы:

Логический блок с логическим оператором Python.#
<[robot.screen.pressing() and robot.has_sports_ball()] :: custom-switch>

В блоке логических значений можно использовать операторы сравнения для сопоставления значений:

  • Больше, чем: >

  • Меньше: <

  • Равно: ==

  • Другие операторы сравнения включают <=, !=, и >=

Логический блок с оператором сравнения Python.#
<[robot.inertial.get_heading()> 100] :: custom-switch>
При запуске используется логический блок для проверки нажатия на экран.#
при запуске
[Continuously turn right until the screen is pressed.]
поворот [вправо v]
вечно
если <[robot.screen.pressing()] :: custom-switch> то
вывести [Screen was pressed!] на экран ▶
остановить все движения
конец
конец

Репортер#

Блок Reporter предоставляет место для ввода кода Python, возвращающего значение. Его можно размещать внутри блоков с циклическими полями ввода.

Блок репортера#
([] :: custom-switch)

Блок Reporter может содержать код Python, который возвращает значение.

Блок Reporter с кодом на Python, который возвращает значение.#
([robot.inertial.get_heading()] :: custom-switch)

Математические операторы можно использовать в блоке Reporter:

  • Сложение: +

  • Вычитание: -

  • Деление: /

  • Умножение: *

Блок репортера с добавлением кода Python.#
([robot.inertial.get_heading() + 45] :: custom-switch)
При запуске выводит на экран направление движения робота плюс 45 градусов.#
при запуске
[Print the robot's heading plus 45 degrees.]
вывести ([robot.inertial.get_heading() + 45] :: custom-switch) на экран ▶

Шляпа#

Блок Hat предоставляет место для определения функции Python. Блоки, прикрепленные под Hat, становятся телом этой функции.

Блок шляп#
[] :: hat custom-switch

В блоке Hat введите определение функции Python. Параметры указываются внутри скобок. Если функция не использует параметры, используйте пустые скобки.

Блок «Шляпа» с определением функции Python#
[def function_name(parameter):] :: hat custom-switch
При запуске используется блок Hat для определения и вызова функции.#
[def move_400():] :: hat custom-switch
[Define a custom function using a Hat block.]
движение [вперёд v] на (400) [мм v] ▶

при запуске
[move_400()] :: custom-switch