转换#

简介#

Switch 指令块使学生能够在基于积木块的编程环境中直接编写 Python 代码。这种方法有助于消除积木块编程与文本编程之间的隔阂。通过让用户直观地看到积木块命令如何转换为 Python 代码,Switch 指令块让用户能够在熟悉的界面中更轻松地学习文本编程技术。使用 Switch 指令块可以在使用常规积木块的同时,简化高级逻辑、计算和函数调用。

以下是所有指令块的列表:

  • 堆栈 — 执行 Switch Python 命令。

  • **C 型 ** — 使用 Switch Python 命令检查条件。

  • C 型可扩展 — 使用 Switch Python 命令检查连续条件。

  • 布尔值 — 使用 Switch Python 命令返回一个布尔值。

  • 报告 — 使用 Switch Python 命令返回一个数值。

  • 帽子 —使用 Switch Python 命令创建一个函数。

堆栈#

Switch 堆栈指令块用于执行在该指令块空白区域内输入的 Switch Python 命令。

其形状设计为可连接在其他动作指令块的上方或下方。

这是一个展示 Switch Stack 指令块用法的 VEXcode Switch 示例。#
[] :: custom-switch

Switch 堆栈指令块既可用于单行 Switch Python 命令,也可用于多行命令。

为了使 Switch 堆栈指令块按预期运行,输入的 Switch Python 命令必须具有正确的拼写、标点符号和缩进。

这是一个展示如何使用 Switch Stack 指令块来编写 Python 代码,以控制机器人前进 400mm 的 VEXcode Switch 示例。#
当开始
[Move forward 400 mm]
[robot.move_for(400, 0)] :: custom-switch

C 型#

Switch C 型指令块用于循环执行其内部的指令块,直到满足该指令块空白区域中设定的条件为止。

其形状设计为可在其上方、下方或内部连接堆栈指令块或其他 C 型指令块。

这是一个展示 Switch C 指令块用法的 VEXcode Switch 示例。#
if [] :: custom-switch
结束

结合 Switch C 指令块使用的 Switch Python 命令可能包括:

为了使 Switch C 指令块按预期运行,输入的 Switch Python 命令必须具有正确的拼写、标点符号和缩进。

这是一个展示 Switch C 指令块与“打印”指令块配合使用的 VEXcode Switch 示例。#
当开始
[Continuously turn right until the screen is pressed.]
[右 v] 转
永久循环
if [ if robot.screen.pressing(): ] :: custom-switch
在屏幕上打印 [ Screen was pressed! ]▶
停止移动
结束
结束

C 型可扩展指令块#

Switch C 型可扩展指令块用于在满足该指令块空白区域中设定的条件时,循环执行特定分支内的指令块。通过扩展该指令块,可以添加额外的分支。

其形状设计为可在其上方、下方或内部连接堆栈指令块或其他 C 型指令块。

这是一个展示 Switch C 可扩展指令块用法的 VEXcode Switch 示例。#
if [] :: custom-switch-expand
结束

结合 Switch C 可扩展 指令块使用的 Switch Python 命令可能包括:

为了使 Switch C可扩展 指令块按预期运行,输入的 Switch Python 命令必须具有正确的拼写、标点符号和缩进。

这是一个展示 Switch C Expandable 指令块配合 if/else Python 代码的 VEXcode Switch 示例。#
当开始
[Continuously move forward until the robot has a sports ball.]
永久循环
if [ if robot.has_sports_ball(): ] :: custom-switch-expand
在屏幕上打印 [ Screen was pressed! ]▶
停止移动
else [else:                                          ]
移动 [向前 v]
结束
结束

布尔值#

Switch 布尔指令块用于将某个条件作为“真”(True)或“假”(False)值返回。这些条件是使用 Switch Python 函数来定义的。

它们的形状设计为可以嵌入任何具有六边形(六边)输入接口的指令块中。

这是一个关于 VEXcode Switch 布尔 指令块的示例。#
<[] :: custom-switch>

Switch 布尔指令块可用于单行 Switch Python 函数,这些函数会直接返回一个真或假的条件。

运算符可用于在单个 Switch 布尔指令块中评估多个 Switch Python 函数。这包括:

这是一个展示 Switch 布尔 指令块配合一行 Switch Python 函数的 VEXcode Switch 示例。#
<[controller.button_up.pressing() and controller.button_down.pressing()] :: custom-switch>

Switch 布尔 指令块还可以将 Switch Python 函数与比较运算符结合使用,以评估函数返回的值与给定数字之间的关系。你可以使用以下运算符:

  • Greater Than: >

  • Less Than: <

  • Equal to: =

  • Additional operators that can be used include <=, !=, and >=

这是一个展示 Switch 布尔 指令块配合比较运算符使用的 VEXcode Switch 示例。#
<[robot.inertial.get_heading()> 100] :: custom-switch>

为了使 Switch 布尔 指令块按预期运行,输入的 Switch Python 命令必须具有正确的拼写、标点符号和缩进。

这是一个展示 Switch 布尔 指令块配合比较运算符使用的 VEXcode Switch 示例。#
当开始
[Continuously turn right until the screen is pressed.]
[右 v] 转
永久循环
如果 <[robot.screen.pressing()] :: custom-switch> 那么
在屏幕上打印 [ Screen was pressed! ]▶
停止移动
结束
结束

报告#

Switch 报告 指令块用于返回一个数值。这些条件是使用 Switch Python 函数来定义的。

它们的形状设计为可以嵌入任何具有圆形输入接口的指令块中。

这是一个展示 Switch 报告器 指令块使用的 VEXcode Switch 示例。#
([] :: custom-switch)

Switch 报告 指令块可用于单行的 Switch Python 函数,这些函数会直接返回一个数值。

数学函数可用于在** Switch 报告**指令块内计算数值。这包括但不限于:

  • Addition: +

  • Subtraction: -

  • Division: /

  • Multiplication: *

这是一个展示在 Switch 报告 指令块中使用包含加法运算符的 Python 代码的 VEXcode Switch 示例。#
([robot.inertial.get_heading() + 45] :: custom-switch)

为了让 Switch 报告指令块按预期工作,输入的 Switch Python 命令必须拼写正确、标点无误,且缩进规范。

这是一个展示在 打印 指令块中使用 Switch 报告 指令块的 VEXcode Switch 示例#
当开始
[Current heading of the robot + 45 degrees will be printed on screen]
在屏幕上打印 ([robot.inertial.get_heading() + 45] :: custom-switch)▶

帽子#

Switch 帽子指令块用于在函数被调用时运行其下方连接的指令块堆栈。

它的形状设计为可以连接在其他动作指令块的上方。

这是一个展示 Switch 帽子 指令块使用的 VEXcode Switch 示例#
[] :: hat custom-switch

连接的指令块堆栈构成了一个函数。Switch 帽子指令块 用于定义函数的名称以及任何可选的参数。

参数应该像下面展示的那样用括号括起来,并在后面加上冒号。如果函数没有参数,请使用空括号:()。

这是一个展示带有参数的 Switch 帽子 指令块的 VEXcode Switch 示例#
[def function_name(parameter):] :: hat custom-switch

为了让 Switch 帽子指令块按预期工作,输入的 Switch Python 命令必须拼写正确、标点无误,且缩进规范。

这是一个展示 Switch 帽子 指令块和 向前驱动 指令块配合使用的 VEXcode Switch 示例。#
[def move_400():] :: hat custom-switch
[Define a custom function using Switch Hat Blocks.]
将 [向前 v] 移至 (400) [毫米 v] ▶

当开始
[move_400()] :: custom-switch