Cambiar#

Introducción#

Los bloques Switch ayudan a los estudiantes a pasar de la programación basada en bloques a la programación basada en texto. Con los bloques Switch, los estudiantes pueden escribir código Python directamente dentro de un proyecto de bloques (comandos, condiciones, valores o definiciones de funciones) mientras continúan desarrollando el resto del proyecto con bloques. Además, los bloques individuales se pueden convertir en sus comandos Python equivalentes.

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

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

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

Bloques Switch: Añade código Python a un proyecto de Blocks.

  • Pila — Proporciona un espacio para escribir comandos de Python que se ejecutan en secuencia con otros bloques de la 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 múltiples ramas, como if, elif, o else.

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

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

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

Pila#

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

Bloque de pila#
[] :: custom-switch

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

Al iniciarse, utiliza un bloque Stack para mover el brazo de 6 ejes a una posición.#
cuando inicie :: hat events
[Move the 6-Axis Arm to a standard position at the start of the project.]
[arm.move_to(120, 120, 75, False)] :: custom-switch

Bloque C#

El Bloque C proporciona un espacio para escribir código de control de Python, como las instrucciones if, whileo 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 Python que se puede utilizar en un bloque C incluye:

Al iniciarse, utiliza un bloque C para comprobar si el brazo de 6 ejes puede alcanzar una posición.#
cuando inicie :: hat events
[Check if the 6-Axis Arm can move to a position.]
if [if not arm.can_arm_reach_to(0, 0, 0):] :: custom-switch
imprimir [The 6-Axis Arm can't move to this position.] en consola ◀ y mover cursor a la siguiente fila
fin

C Expandible#

El bloque C Expandible proporciona un espacio para escribir código de control Python con múltiples ramificaciones, como if, elifo elseSe pueden agregar ramificaciones adicionales seleccionando la flecha más.

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

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

Al iniciarse, utiliza un bloque expandible C para comprobar si el brazo de 6 ejes puede alcanzar una posición.#
cuando inicie
[Check if the 6-Axis Arm can or can't move to a position.]
if [if not arm.can_arm_reach_to(0, 0, 0):] :: custom-switch-expand
imprimir [The 6-Axis Arm can't move to this position.] en consola ◀ y mover cursor a la siguiente fila
else [else:] :: custom-switch-expand
imprimir [The 6-Axis Arm can move to this position.] en consola ◀ y mover cursor a la siguiente fila
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_a.is_pressed()] :: custom-switch>

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

Bloque booleano con un operador lógico de Python#
<[bumper_a.is_pressed() or bumper_b.is_pressed()] :: custom-switch>

Un bloque booleano puede utilizar 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.get_heading()> 100] :: custom-switch>
Al iniciarse, utiliza un bloque booleano para comprobar si el brazo de 6 ejes puede alcanzar una posición.#
cuando inicie
[Check if the 6-Axis Arm can move to a position.]
si <no <[arm.can_arm_reach_to(0, 0, 0)] :: custom-switch>> entonces
imprimir [The 6-Axis Arm can't move to this position.] en consola ◀ y mover cursor a la siguiente fila
fin

Reportero#

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

Bloque de reporteros#
([] :: custom-switch)

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

Bloque reportero con código Python que devuelve un valor.#
([arm.get_y()] :: custom-switch)

Los operadores matemáticos se pueden utilizar en un bloque Reportero:

  • Suma: +

  • Resta: -

  • División: /

  • Multiplicación: *

Bloque de reportero con adición de Python#
([arm.get_y() + 45] :: custom-switch)
Al iniciarse, imprime la posición Y actual mientras el brazo de 6 ejes se mueve.#
cuando inicie
[Display the current y-position while the 6-Axis Arm moves.]
mover [brazo v] a posición x:(-100) y:(200) z:(100) [mm v] ◀ y no esperar
repetir hasta <¿[brazo v] terminó de moverse?>
imprimir ([arm.get_y()] :: custom-switch) en consola ◀ y mover cursor a la siguiente fila
esperar [0.25] segundos
fin

Sombrero#

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

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

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

Bloque de sombrero con una definición de función de Python#
[def function_name(parameter):] :: hat custom-switch
Al iniciarse, utiliza un bloque Hat para definir y llamar a una función.#
[def increment_y_100():] :: hat custom-switch
[Create a function to increment the 6-Axis Arm.]
incrementar posición de [brazo v] en x:[0] y:[100] z:[0] [mm v] ▶

cuando inicie :: hat events
[increment_y_100()] :: custom-switch