转变#
介绍#
Switch 模块帮助学生从基于模块的编程过渡到基于文本的编程。借助 Switch 模块,学生可以直接在模块项目中输入 Python 代码——编写命令、条件、值或函数定义——同时仍然可以使用模块构建项目的其他部分。单个模块也可以转换为相应的 Python 命令。
要学习如何输入 Python 命令、方法和运算符,请参阅 VEX EXP Python API。
由于 Switch 代码块包含 Python 代码,因此拼写、标点符号和缩进必须正确,项目才能按预期运行。
以下是所有 Switch 模块的列表:
切换模块 — 向 Blocks 项目添加 Python 代码。
堆栈 — 提供一个空间来键入与堆栈块按顺序运行的 Python 命令。
C Block — Provides a space to type Python control code, such as
if,while, orforstatements.C Expandable — Provides a space to type Python control code with multiple branches, such as
if,elif, orelse.Boolean — Provides a space to type Python code that returns
TrueorFalse.Reporter — 提供一个空间来键入返回值的 Python 代码。
Hat — 提供一个空间来定义 Python 函数。
堆#
堆栈 块提供了一个空间,用于键入与其他堆栈块按顺序运行的 Python 命令。
[] :: custom-switch
堆栈 块可以包含一行或多行 Python 代码。
当开始 :: hat events
[Drive forward, then stop.]
[drivetrain.drive(FORWARD)] :: custom-switch
等待 [2] 秒
驱动停止
C 块#
The C Block provides a space to type Python control code, such as if, while, or for statements. Blocks placed inside the C Block run as part of that Python control structure.
if [] :: custom-switch
结束
可在C 代码块中使用的 Python 控制代码包括:
当开始 :: hat events
[Drive forward when the screen is pressed.]
永久循环
if [if brain.screen.pressing():] :: custom-switch
驱动 [向前 v] [200] [毫米 v] ▶
结束
结束
C 可扩展#
The C Expandable block provides a space to type Python control code with multiple branches, such as if, elif, or else. Additional branches can be added by selecting the plus arrow.
if [] :: custom-switch-expand
结束
可在C Expandable代码块中使用的Python控制代码包括:
当开始
[Turn right when the screen is pressed, otherwise turn left.]
永久循环
if [if brain.screen.pressing():] :: custom-switch-expand
[右 v] 转
else [else:] :: custom-switch-expand
[左 v] 转
结束
结束
布尔值#
The Boolean block provides a space to type Python code that returns True or False. It can be placed inside blocks with hexagonal inputs.
<[] :: custom-switch>
布尔值块可以包含Python条件。
<[bumper_a.is_pressed()] :: custom-switch>
布尔块也可以使用逻辑运算符:
<[bumper_a.is_pressed() or bumper_b.is_pressed()] :: custom-switch>
布尔块可以使用比较运算符来比较值:
Greater than:
>Less than:
<Equal to:
==Other comparison operators include
<=,!=, and>=
<[drivetrain.get_heading()> 100] :: custom-switch>
当开始 :: hat events
[Drive forward whenever the screen is pressed.]
永久循环
如果 <[brain.screen.pressing()] :: custom-switch> 那么
驱动 [向前 v] [200] [毫米 v] ▶
结束
结束
记者#
Reporter 代码块提供了一个用于编写返回值的 Python 代码的空间。它可以放置在带有循环输入的代码块内。
([] :: custom-switch)
Reporter 代码块可以包含返回值的 Python 代码。
([drivetrain.rotation()] :: custom-switch)
数学运算符可以在Reporter模块中使用:
([drivetrain.rotation() + 45] :: custom-switch)
当开始 :: hat events
[Display the rotation while turning.]
[右 v] 转 [450] 度 ◀ 并且不等待
永久循环
清除所有行
打印 ([drivetrain.rotation()] :: custom-switch) ▶
等待 [0.1] 秒
结束
帽子#
帽子 代码块提供了一个定义 Python 函数的空间。附加在 帽子 下的代码块将成为该函数的主体。
[] :: hat custom-switch
在 Hat 代码块中输入 Python 函数定义。参数放在圆括号内。如果函数不使用参数,则使用空圆括号。
[def function_name(parameter):] :: hat custom-switch
[def drive_400():] :: hat custom-switch
[Create a function to drive the robot forward.]
驱动 [向前 v] (400) [毫米 v] ▶
当开始 :: hat events
[drive_400()] :: custom-switch