Перемикач#

Вступ#

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

Щоб дізнатися, як вводити команди, методи та оператори Python, див. VEX VR Python API.

Оскільки блоки Switch містять код Python, орфографія, пунктуація та відступи мають бути правильними, щоб проєкт працював належним чином.

Нижче наведено список усіх блоків Switch:

Перемикання блоків — додавання коду Python до проєкту Blocks.

  • Stack — Надає простір для введення команд Python, що виконуються послідовно з іншими блоками стеку.

  • C Block — Надає пробіл для введення керуючого коду Python, такого як if, whileабо for операторів.

  • C Expandable — Надає простір для введення коду керування Python з кількома розгалуженнями, наприклад, if, elifабо else.

  • Boolean — Надає пробіл для введення коду Python, який повертає True або False.

  • Reporter — Надає місце для введення коду Python, який повертає значення.

  • Hat — Надає простір для визначення функції Python.

Стек#

Блок Stack надає простір для введення команд Python, які виконуються послідовно з іншими блоками стека.

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

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

Після запуску використовує блок Stack для руху вперед.#
коли запущено
[Drive forward 400 mm.]
[drivetrain.drive_for(FORWARD, 400, MM)] :: custom-switch

Блок С#

Блок C надає місце для введення коду керування Python, такого як оператори if, whileабо for Блоки, розміщені всередині блоку C, виконуються як частина цієї структури керування Python.

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

Код керування Python, який можна використовувати в блоці C, включає:

  • if

  • while

  • for

Під час запуску використовується C-блок для зупинки при натисканні на бампер.#
коли запущено
[Continuously drive until the bumper is pressed.]
їхати [вперед v]
назавжди
if [if bumper.pressed():] :: custom-switch
вивести [Bumper was pressed!] ▶
зупинити рух
Кінець
Кінець

C Розширюваний#

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

C Розширюваний блок#
if [] :: custom-switch-expand
Кінець

Код керування Python, який можна використовувати в блоці C Expandable, включає:

  • if

  • elif

  • else

  • while

  • for

Під час запуску використовується розширюваний блок C для зупинки при натисканні на бампер та руху в іншому випадку.#
коли запущено
[Continuously move forward until the bumper is pressed.]
назавжди
if [if bumper.pressed():] :: custom-switch-expand
вивести [Bumper was pressed!] ▶
зупинити рух
else [else:] :: custom-switch-expand
їхати [вперед v]
Кінець
Кінець

Булеве значення#

Блок Boolean надає простір для введення коду Python, який повертає True або FalseЙого можна розмістити всередині блоків із шестикутними входами.

Булев блок#
<[] :: custom-switch>

Блок Boolean може містити умову Python.

Булевий блок з умовою Python#
<[bumper.pressed()] :: custom-switch>

У булевому блоці також можуть використовуватися логічні оператори:

  • and

  • or

  • not

Булев блок з логічним оператором Python#
<[bumper.pressed() or distance.found_object()] :: custom-switch>

Блок Boolean може використовувати оператори порівняння для порівняння значень:

  • Більше ніж: >

  • Менше ніж: <

  • Дорівнює: ==

  • Інші оператори порівняння включають <=, !=та >=

Булев блок з оператором порівняння Python#
<[drivetrain.heading()> 100] :: custom-switch>
Під час запуску використовується логічний блок для зупинки, коли датчик відстані знаходить об’єкт.#
коли запущено
[Turn right until the Distance Sensor finds an object.]
повернути [праворуч v]
назавжди
якщо <[distance.found_object()] :: custom-switch> тоді
вивести [Object found!] ▶
зупинити рух
Кінець
Кінець

Репортер#

Блок Reporter надає простір для введення коду Python, який повертає значення. Його можна розмістити всередині блоків із циклічними вхідними даними.

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

Блок Reporter може містити код Python, який повертає значення.

Блок репортера з кодом Python, який повертає значення#
([drivetrain.heading()] :: custom-switch)

Математичні оператори можна використовувати в блоці Reporter:

  • Додавання: +

  • Віднімання: -

  • Відділення: /

  • Множення: *

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

Капелюх#

Блок Hat надає простір для визначення функції Python. Блоки, приєднані до Hat, стають тілом цієї функції.

Блок капелюха#
[] :: hat custom-switch

Введіть визначення функції Python у блоці Hat. Параметри вводяться в дужки. Якщо функція не використовує параметри, використовуйте порожні дужки.

Блок Hat з визначенням функції Python#
[def function_name(parameter):] :: hat custom-switch
Після запуску використовує блок Hat для визначення та виклику функції.#
[def drive_400():] :: hat custom-switch
[Define a custom function using a Hat block.]
їхати [вперед v] на (400) [мм v] ▶

коли запущено
[drive_400()] :: custom-switch