转换#
简介#
Switch 指令块帮助学生从基于指令块的编程过渡到基于文本的编程。借助 Switch 模块,学生可以直接在指令块项目中输入 Python 代码——编写命令、条件、值或函数定义——同时仍然可以使用指令块构建项目的其他部分。单个指令块也可以转换为相应的 Python 命令。
要学习如何输入 Python 命令、方法和运算符,请参阅 VEX AIM Python API。
由于 Switch 指令块包含 Python 代码,因此拼写、标点符号和缩进必须正确,项目才能按预期运行。
以下是所有 Switch 指令块的列表:
切换指令块 — 向 Blocks 项目添加 Python 代码。
堆栈#
指令 块提供了一个空间,用于键入与其他指令块按顺序运行的 Python 命令。
[] :: custom-switch
指令 块可以包含一行或多行 Python 代码。
当开始
[Move forward 400 mm.]
[robot.move_for(400, 0)] :: custom-switch
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 控制代码包括:
[
if] (…/python/Logic/Controls.md#if)[
while] (…/python/Logic/Controls.md#while)[
for] (…/python/Logic/Controls.md#for)
当开始
[Continuously turn right until the screen is pressed.]
[右 v] 转
永久循环
if [if robot.screen.pressing():] :: custom-switch
在屏幕上打印 [Screen was pressed!]▶
停止移动
结束
结束
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可扩展指令块中使用的Python控制代码包括:
[
if] (…/python/Logic/Controls.md#if)[
elif] (…/python/Logic/Controls.md#if)[
else] (…/python/Logic/Controls.md#if)[
while] (…/python/Logic/Controls.md#while)[
for] (…/python/Logic/Controls.md#for)
当开始
[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]
结束
结束
布尔值#
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条件。
<[robot.screen.pressing()] :: custom-switch>
布尔指令块也可以使用逻辑运算符:
[
or] (…/python/Logic/Operators.md#logical)[
not] (…/python/Logic/Operators.md#logical)
<[robot.screen.pressing() and robot.has_sports_ball()] :: custom-switch>
布尔指令块可以使用比较运算符来比较值:
大于: [
>] (…/python/Logic/Operators.md#comparison)小于: [
<] (…/python/Logic/Operators.md#comparison)等于: [
= =] (…/python/Logic/Operators.md#comparison)其他比较运算符包括[
< =,! =, and> =] (…/python/Logic/Operators.md#comparison)
<[robot.inertial.get_heading()> 100] :: custom-switch>
当开始
[Continuously turn right until the screen is pressed.]
[右 v] 转
永久循环
如果 <[robot.screen.pressing()] :: custom-switch> 那么
在屏幕上打印 [Screen was pressed!]▶
停止移动
结束
结束
报告#
报告器 指令块提供了一个用于编写返回值的 Python 代码的空间。它可以放置在带有循环输入的代码块内。
([] :: custom-switch)
报告器 指令块可以包含返回值的 Python 代码。
([robot.inertial.get_heading()] :: custom-switch)
数学运算符可以在报告器指令块中使用:
加法: [
+] (…/python/Logic/Operators.md#arithmetic)减法: [
-] (…/python/Logic/Operators.md#arithmetic)除法: [
/] (…/python/Logic/Operators.md#arithmetic)乘法: [
*] (…/python/Logic/Operators.md#arithmetic)
([robot.inertial.get_heading() + 45] :: custom-switch)
当开始
[Print the robot's heading plus 45 degrees.]
在屏幕上打印 ([robot.inertial.get_heading() + 45] :: custom-switch)▶
帽子#
帽子 指令块提供了一个定义 Python 函数的空间。附加在 帽子 下的指令块将成为该函数的主体。
[] :: hat custom-switch
在 帽 指令块中输入 Python 函数定义。参数放在圆括号内。如果函数不使用参数,则使用空圆括号。
[def function_name(parameter):] :: hat custom-switch
[def move_400():] :: hat custom-switch
[Define a custom function using a Hat block.]
将 [向前 v] 移至 (400) [毫米 v] ▶
当开始
[move_400()] :: custom-switch