Interruptor#

Introducción#

Los bloques de cambio ayudan a los estudiantes a pasar de la codificación basada en bloques a la codificación basada en texto. Con los bloques de Switch, los estudiantes pueden escribir código Python directamente dentro de un proyecto de bloques (escribir comandos, condiciones, valores o definiciones de funciones) mientras siguen construyendo el resto del proyecto con bloques. Los bloques individuales también se pueden convertir en sus comandos equivalentes de Python.

Para aprender a escribir comandos, métodos y operadores de Python, consulte la API de VEX VR Python.

Debido a que los bloques de Switch contienen código Python, la ortografía, la puntuación y la sangría deben ser correctas para que el proyecto se ejecute como se espera.

A continuación se muestra una lista de todos los bloques de Switch:

Cambiar de bloque: agrega código Python a un proyecto de bloques.

  • Stack — Proporciona un espacio para escribir comandos de Python que se ejecutan en secuencia con otros bloques de pila.

  • Bloque C — Proporciona un espacio para escribir código de control de Python, como if, while, o for sentencias.

  • C Expandible: proporciona un espacio para escribir código de control de Python con varias ramas, como if, elif o else.

  • Boolean — Proporciona un espacio para escribir código Python que devuelve True o False.

  • Reporter — Proporciona un espacio para escribir código Python que devuelve un valor.

  • Hat — Proporciona un espacio para definir una función de Python.

Apilar#

El bloque Stack proporciona un espacio para escribir comandos de Python que se ejecutan en secuencia con otros bloques de pila.

Bloque de apilamiento#
[] :: custom-switch

Un bloque Stack puede contener una o varias líneas de código Python.

Cuando se inicia, utiliza un bloque Stack para avanzar.#
cuando inicie
[Drive forward 400 mm.]
[drivetrain.drive_for(FORWARD, 400, MM)] :: custom-switch

Bloque C#

El Bloque C proporciona un espacio para escribir código de control de Python, como if, while o for. Los bloques colocados dentro del Bloque C se ejecutan como parte de esa estructura de control de Python.

Bloque C#
if [] :: custom-switch
fin

El código de control de Python que se puede usar en un Bloque C incluye:

  • if

  • while

  • for

Cuando se inicia, utiliza un bloque C para detenerse cuando se presiona el parachoques.#
cuando inicie
[Continuously drive until the bumper is pressed.]
conducir [adelante v]
por siempre
if [if bumper.pressed():] :: custom-switch
imprimir [Bumper was pressed!] ▶
detener conducción
fin
fin

C Expandible#

El bloque C Expandible proporciona un espacio para escribir código de control de Python con varias ramas, como if, elif o else. Se pueden agregar ramas adicionales seleccionando la flecha más.

C Bloque expandible#
if [] :: custom-switch-expand
fin

El código de control de Python que se puede usar en un bloque * * C Expandible * * incluye:

  • if

  • elif

  • else

  • while

  • for

Cuando se inicia, utiliza un bloque C Expandible para detenerse cuando se presiona el parachoques y conducir de lo contrario.#
cuando inicie
[Continuously move forward until the bumper is pressed.]
por siempre
if [if bumper.pressed():] :: custom-switch-expand
imprimir [Bumper was pressed!] ▶
detener conducción
else [else:] :: custom-switch-expand
conducir [adelante v]
fin
fin

Booleano#

El bloque Booleano proporciona un espacio para escribir código Python que devuelve True o FalseSe puede colocar dentro de bloques con entradas hexagonales.

Bloque booleano#
<[] :: custom-switch>

Un bloque booleano puede contener una condición de Python.

Bloque booleano con una condición de Python#
<[bumper.pressed()] :: custom-switch>

Un bloque booleano también puede utilizar operadores lógicos:

  • and

  • or

  • not

Bloque booleano con un operador lógico de Python#
<[bumper.pressed() or distance.found_object()] :: custom-switch>

Un bloque booleano puede usar operadores de comparación para comparar valores:

  • Mayor que: >

  • Menos de: <

  • Igual a: ==

  • Otros operadores de comparación incluyen <=, !== y >=

Bloque booleano con un operador de comparación de Python#
<[drivetrain.heading()> 100] :: custom-switch>
Cuando se inicia, utiliza un bloque booleano para detenerse cuando el sensor de distancia encuentra un objeto.#
cuando inicie
[Turn right until the Distance Sensor finds an object.]
girar [derecha v]
por siempre
si <[distance.found_object()] :: custom-switch> entonces
imprimir [Object found!] ▶
detener conducción
fin
fin

Informante#

El bloque Reportero proporciona un espacio para escribir código Python que devuelve un valor. Se puede colocar dentro de bloques con entradas circulares.

Bloqueo de informante#
([] :: custom-switch)

Un bloque Reporter puede contener código Python que devuelve un valor.

Bloque Reporter con código Python que devuelve un valor#
([drivetrain.heading()] :: custom-switch)

Los operadores matemáticos se pueden usar en un bloque * * Reporter * *:

  • Adición: +

  • Resta: -

  • División: /

  • Multiplicación: *

Bloque de reportero con adición de Python#
([drivetrain.heading() + 45] :: custom-switch)
Cuando se inicia, imprime el rumbo del robot más 45 grados.#
cuando inicie
[Print the robot's heading plus 45 degrees.]
imprimir ([drivetrain.heading() + 45] :: custom-switch) ▶

Sombrero#

El bloque Hat proporciona un espacio para definir una función de Python. Los bloques adjuntos debajo del Sombrero se convierten en el cuerpo de esa función.

Bloque de sombrero#
[] :: hat custom-switch

Escriba una definición de función de Python en el bloque * * Hat * *. Los parámetros van dentro de los paréntesis. Si la función no usa parámetros, use paréntesis vacíos.

Bloque Hat con una definición de función Python#
[def function_name(parameter):] :: hat custom-switch
Cuando se inicia, utiliza un bloque Hat para definir y llamar a una función.#
[def drive_400():] :: hat custom-switch
[Define a custom function using a Hat block.]
conducir [adelante v] por (400) [mm v] ▶

cuando inicie
[drive_400()] :: custom-switch