Changer#

Introduction#

Les blocs Switch facilitent la transition des élèves de la programmation par blocs à la programmation textuelle. Grâce à eux, ils peuvent saisir du code Python directement dans un projet utilisant des blocs (commandes, conditions, valeurs ou définitions de fonctions) tout en continuant à construire le reste du projet avec des blocs. Chaque bloc peut également être converti en sa commande Python équivalente.

Pour apprendre à saisir des commandes, des méthodes et des opérateurs Python, consultez l’API Python VEX CTE.

Étant donné que les blocs Switch contiennent du code Python, l’orthographe, la ponctuation et l’indentation doivent être correctes pour que le projet fonctionne comme prévu.

Vous trouverez ci-dessous la liste de tous les blocs Switch :

Blocs Switch — Ajoutez du code Python à un projet Blocks.

  • Pile — Fournit un espace pour saisir des commandes Python qui s’exécutent en séquence avec d’autres blocs de pile.

  • Bloc C — Fournit un espace pour saisir du code de contrôle Python, tel que if, while, ou for instructions.

  • C Expandable — Fournit un espace pour saisir du code de contrôle Python avec plusieurs branches, comme if, elif, ou else.

  • Booléen — Fournit un espace pour saisir du code Python qui renvoie True ou False.

  • Reporter — Fournit un espace pour saisir du code Python qui renvoie une valeur.

  • Chapeau — Fournit un espace pour définir une fonction Python.

Empiler#

Le bloc Pile offre un espace pour saisir des commandes Python qui s’exécutent en séquence avec d’autres blocs de pile.

Bloc de pile#
[] :: custom-switch

Un bloc Stack peut contenir une ou plusieurs lignes de code Python.

Au démarrage, utilise un bloc Stack pour déplacer le bras à 6 axes vers une position.#
au démarrage :: 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

Bloc 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.

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

Le code de contrôle Python utilisable dans un bloc C comprend :

Au démarrage, utilise un bloc C pour vérifier si le bras à 6 axes peut atteindre une position.#
au démarrage :: 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
afficher [The 6-Axis Arm can't move to this position.] sur la console ◀ et placer le curseur sur la ligne suivante
fin

C extensible#

Le bloc C Expandable offre un espace pour saisir du code de contrôle Python avec plusieurs branches, comme if, elifou elseDes branches supplémentaires peuvent être ajoutées en sélectionnant la flèche plus.

Bloc extensible C#
if [] :: custom-switch-expand
fin

Le code de contrôle Python utilisable dans un bloc C Expandable comprend :

Au démarrage, utilise un bloc C extensible pour vérifier si le bras à 6 axes peut atteindre une position.#
au démarrage
[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
afficher [The 6-Axis Arm can't move to this position.] sur la console ◀ et placer le curseur sur la ligne suivante
else [else:] :: custom-switch-expand
afficher [The 6-Axis Arm can move to this position.] sur la console ◀ et placer le curseur sur la ligne suivante
fin

booléen#

Le bloc Booléen offre un espace pour saisir du code Python qui renvoie True ou FalseIl peut être placé à l’intérieur de blocs avec des entrées hexagonales.

Bloc booléen#
<[] :: custom-switch>

Un bloc booléen peut contenir une condition Python.

Bloc booléen avec une condition Python#
<[bumper_a.is_pressed()] :: custom-switch>

Un bloc booléen peut également utiliser des opérateurs logiques :

Bloc booléen avec un opérateur logique Python#
<[bumper_a.is_pressed() or bumper_b.is_pressed()] :: custom-switch>

Un bloc booléen peut utiliser des opérateurs de comparaison pour comparer des valeurs :

  • Supérieur à : >

  • Inférieur à : <

  • Égal à : ==

  • D’autres opérateurs de comparaison incluent <=, !=, et >=

Bloc booléen avec un opérateur de comparaison Python#
<[drivetrain.get_heading()> 100] :: custom-switch>
Au démarrage, utilise un bloc booléen pour vérifier si le bras à 6 axes peut atteindre une position.#
au démarrage
[Check if the 6-Axis Arm can move to a position.]
si <pas <[arm.can_arm_reach_to(0, 0, 0)] :: custom-switch>> alors
afficher [The 6-Axis Arm can't move to this position.] sur la console ◀ et placer le curseur sur la ligne suivante
fin

Journaliste#

Le bloc Reporter permet de saisir du code Python qui renvoie une valeur. Il peut être placé à l’intérieur de blocs à entrées circulaires.

Bloc de reportage#
([] :: custom-switch)

Un bloc Reporter peut contenir du code Python qui renvoie une valeur.

Bloc de rapporteur avec du code Python qui renvoie une valeur#
([arm.get_y()] :: custom-switch)

Les opérateurs mathématiques peuvent être utilisés dans un bloc Reporter :

  • Addition : +

  • Soustraction : -

  • Division : /

  • Multiplication : *

Bloc de rapporteur avec ajout de Python#
([arm.get_y() + 45] :: custom-switch)
Au démarrage, il imprime la position y actuelle pendant que le bras à 6 axes se déplace.#
au démarrage
[Display the current y-position while the 6-Axis Arm moves.]
déplacer [bras v] en position x :(-100) y :(200) z :(100) [mm v] ◀ et ne pas attendre
répéter jusqu'à <[bras v] a-t-il terminé son mouvement ?>
afficher ([arm.get_y()] :: custom-switch) sur la console ◀ et placer le curseur sur la ligne suivante
attendre [0.25] secondes
fin

Chapeau#

Le bloc Hat permet de définir une fonction Python. Les blocs placés sous le bloc Hat constituent le corps de cette fonction.

Bloc de chapeau#
[] :: hat custom-switch

Saisissez la définition d’une fonction Python dans le bloc Chapeau. Les paramètres se placent entre parenthèses. Si la fonction ne prend pas de paramètres, utilisez des parenthèses vides.

Bloc chapeau avec définition de fonction Python#
[def function_name(parameter):] :: hat custom-switch
Au démarrage, utilise un bloc Hat pour définir et appeler une fonction.#
[def increment_y_100():] :: hat custom-switch
[Create a function to increment the 6-Axis Arm.]
incrémenter la position du [bras v] de x :[0] y :[100] z :[0] [mm v] ▶

au démarrage :: hat events
[increment_y_100()] :: custom-switch