转变#

介绍#

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

#

Switch Stack 块用于执行在该块的空白区域内键入的 Switch Python 命令。

它们的形状设计成可以安装在其他动作模块的上方或下方。

VEXcode 交换机模块示例,展示了一个交换机堆栈模块。#
[] :: custom-switch

Switch Stack 块可用于单行或多行 Switch Python 命令。

为了使 Switch Stack 块按预期工作,必须使用正确的拼写、标点符号和缩进输入 Switch Python 命令。

这是一个 VEXcode 开关模块示例,展示了一个开关堆叠模块,其中包含用于驱动车辆前进 400 毫米的 Python 开关命令。#
当开始
[Drive forward 400 mm]
[drivetrain.drive_for(FORWARD, 400, MM)] :: custom-switch

C 块#

Switch C Block 块用于循环执行块内的所有块,直到满足块内空白处的条件为止。

它们的形状设计成可以连接堆叠或其他 C 型块,无论是在其上方、下方还是内部。

VEXcode 开关模块示例,展示了一个开关 C 模块。#
if [] :: custom-switch
结束

一些可以与 Switch C 代码块一起使用的 Switch Python 命令包括:

  • while

  • if

  • for

为了使 Switch C 块按预期工作,必须使用正确的拼写、标点符号和缩进输入 Switch Python 命令。

这是一个 VEXcode 开关模块示例,开关模块 c 内包含文本,打印模块显示“保险杠被按下”。#
当开始
[Continuously drive until the bumper is pressed.]
驱动 [向前 v]
永久循环
if [ if bumper.pressed(): ] :: custom-switch
打印 [ Bumper was pressed! ] ▶
驱动停止
结束
结束

C 可扩展#

Switch C Expandable 代码块用于在满足代码块空白处条件时,循环执行特定分支内的代码块。可以通过扩展代码块来添加更多分支。

它们的形状设计成可以连接堆叠和其他 C 型块,这些 C 型块可以位于它们的上方、下方或内部。

VEXcode 开关模块示例,展示了一个可扩展的开关 C 模块。#
if [] :: custom-switch-expand
结束

一些可以与 Switch C Expandable 模块一起使用的 Switch Python 命令包括:

  • while

  • if

  • for

为了使 Switch C Expandable 模块按预期工作,必须使用正确的拼写、标点符号和缩进输入 Switch Python 命令。

这是一个 VEXcode Switch 模块示例,展示了一个可扩展的 C 语言 Switch 模块,并带有 if else Python 代码。#
当开始
[Continuously move forward until the bumper is pressed.]
永久循环
if [ if bumper.pressed(): ] :: custom-switch-expand
打印 [ Bumper was pressed! ] ▶
驱动停止
else [else:                                          ]
驱动 [向前 v]
结束
结束

布尔值#

Switch Boolean 代码块用于返回 True 或 False 值来表示一个条件。这些条件由 Python 的 Switch 函数定义。

它们的形状适合安装在任何具有六边形(六面体)输入的模块中。

VEXcode 开关布尔块#
<[] :: custom-switch>

Switch Boolean 代码块可用于单行 Switch Python 函数,该函数将直接返回真或假的结果。

可以使用运算符在单个 Switch 布尔代码块中评估多个 Switch Python 函数。这包括:

  • and

  • or

  • not

这是一个 VEXcode 开关模块示例,其中包含一个布尔模块,该模块有一行 switch Python 函数。#
<[bumper.pressed()] :: custom-switch>

Switch Boolean 块还可以将 Switch Python 函数与比较运算符结合使用,以评估返回值与给定数字的比较情况,使用的运算符如下:

  • 大于:>

  • 少于:

  • 等于:=

  • 还可以使用其他运算符,例如 <=、!= 和 >=

这是一个使用布尔块和比较运算符的 VEXcode 开关块示例。#
<[drivetrain.heading()> 100] :: custom-switch>

为了使 Switch Boolean 块按预期工作,必须使用正确的拼写、标点符号和缩进输入 Switch Python 命令。

这是一个使用布尔块和比较运算符的 VEXcode 开关块示例。#
当开始
[Turn right until the Distance Sensor finds an object.]
[右 v] 转
永久循环
如果 <[distance.found_object()] :: custom-switch> 那么
打印 [ Object found! ] ▶
驱动停止
结束
结束

记者#

Switch Reporter 代码块用于返回数值。这些条件由 Python 的 Switch 函数定义。

它们的形状设计成可以安装在任何带有圆形输入口的模块中。

VEXcode 开关模块示例,展示了一个开关报告器模块。#
([] :: custom-switch)

Switch Reporter 代码块可用于直接返回数值的单行 Switch Python 函数。

可以使用数学函数在Switch Reporter模块中计算值。这包括但不限于:

  • 补充:+

  • 减法:-

  • 分配: /

  • 乘法:*

这是一个 VEXcode 开关模块示例,展示了一个带有 Python 代码的开关报告器模块,该代码包含一个加法运算符。#
([drivetrain.heading() + 45] :: custom-switch)

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

VEXcode 开关块示例,展示了打印块内的开关报告器块。#
当开始
[Current heading of the robot + 45 degrees will be printed on screen.]
打印 ([drivetrain.heading() + 45] :: custom-switch) ▶

帽子#

Switch Hat 模块用于在调用函数时运行所连接的模块堆栈。

它们的形状设计成可以安装在其他动作模块的上方。

VEXcode 开关模块示例,展示了一个开关帽模块。#
[] :: hat custom-switch

附加的模块堆栈构成一个函数。“开关帽”模块用于定义函数名称和任何可选参数。

参数应使用圆括号括起来,并在其后加冒号,如下所示。如果函数没有参数,则使用右圆括号:()。

这是一个 VEXcode 开关模块示例,展示了一个带有 Python 函数的开关帽模块,该函数有一个参数。#
[def function_name(parameter):] :: hat custom-switch

为了使 Switch Hat 模块按预期工作,必须使用正确的拼写、标点符号和缩进输入 Switch Python 命令。

VEXcode 开关模块示例,展示了一个开关帽模块和一个前进驱动模块。#
[def drive_400():] :: hat custom-switch
[Define a custom function using Switch Hat Blocks.]
驱动 [向前 v] (400) [毫米 v] ▶

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