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

É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, il utilise un bloc Stack pour faire avancer le robot.#
au démarrage
[Move forward 400 mm.]
[robot.move_for(400, 0)] :: 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, il utilise un bloc C pour vérifier si l’écran est enfoncé.#
au démarrage
[Continuously turn right until the screen is pressed.]
pivoter [droite v]
indéfiniment
if [if robot.screen.pressing():] :: custom-switch
afficher [Screen was pressed!] sur l'écran ▶
arrêter tout mouvement
fin
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, il utilise un bloc C extensible pour se déplacer jusqu’à ce que le robot ait un ballon de sport.#
au démarrage
[Continuously move forward until the robot has a sports ball.]
indéfiniment
if [if robot.has_sports_ball():] :: custom-switch-expand
afficher [Sports ball found!] sur l'écran ▶
arrêter tout mouvement
else [else:]
se déplacer [avant v]
fin
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#
<[robot.screen.pressing()] :: custom-switch>

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

Bloc booléen avec un opérateur logique Python#
<[robot.screen.pressing() and robot.has_sports_ball()] :: 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#
<[robot.inertial.get_heading()> 100] :: custom-switch>
Au démarrage, il utilise un bloc booléen pour vérifier si l’écran est enfoncé.#
au démarrage
[Continuously turn right until the screen is pressed.]
pivoter [droite v]
indéfiniment
si <[robot.screen.pressing()] :: custom-switch> alors
afficher [Screen was pressed!] sur l'écran ▶
arrêter tout mouvement
fin
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#
([robot.inertial.get_heading()] :: 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#
([robot.inertial.get_heading() + 45] :: custom-switch)
Au démarrage, il imprime la direction du robot plus 45 degrés.#
au démarrage
[Print the robot's heading plus 45 degrees.]
afficher ([robot.inertial.get_heading() + 45] :: custom-switch) sur l'écran ▶

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 move_400():] :: hat custom-switch
[Define a custom function using a Hat block.]
se déplacer [avant v] sur (400) [mm v] ▶

au démarrage
[move_400()] :: custom-switch