Schalten#

Einführung#

Switch-Blöcke erleichtern Schülern den Übergang von der blockbasierten zur textbasierten Programmierung. Mit Switch-Blöcken können Schüler Python-Code direkt in ein Blockprojekt eingeben – Befehle, Bedingungen, Werte oder Funktionsdefinitionen schreiben – während der Rest des Projekts weiterhin mit Blöcken erstellt wird. Einzelne Blöcke lassen sich außerdem in die entsprechenden Python-Befehle umwandeln.

Um zu lernen, wie man Python-Befehle, -Methoden und -Operatoren eingibt, siehe die VEX IQ (2nd gen) Python API.

Da Switch-Blöcke Python-Code enthalten, müssen Rechtschreibung, Zeichensetzung und Einrückung korrekt sein, damit das Projekt wie erwartet ausgeführt werden kann.

Nachfolgend finden Sie eine Liste aller Switch-Blöcke:

Switch-Blöcke – Python-Code zu einem Blocks-Projekt hinzufügen.

  • Stack — Bietet Platz zum Eingeben von Python-Befehlen, die nacheinander mit anderen Stack-Blöcken ausgeführt werden.

  • C Block — Bietet Platz für die Eingabe von Python-Kontrollcode, wie z. B. if, while, oder for Anweisungen.

  • C Expandable — Bietet Platz für die Eingabe von Python-Kontrollcode mit mehreren Verzweigungen, wie z. B. if, elifoder else.

  • Boolean — Bietet Platz für die Eingabe von Python-Code, der True oder False zurückgibt.

  • Reporter — Bietet Platz zum Eingeben von Python-Code, der einen Wert zurückgibt.

  • Hut — Bietet Platz zum Definieren einer Python-Funktion.

Stapel#

Der Stack-Block bietet Platz für die Eingabe von Python-Befehlen, die nacheinander mit anderen Stack-Blöcken ausgeführt werden.

Stapelblock#
[] :: custom-switch

Ein Stack-Block kann eine oder mehrere Zeilen Python-Code enthalten.

Beim Start verwendet der Roboter einen Stack-Block, um sich vorwärts zu bewegen.#
wenn gestartet
[Move the robot forward.]
[drivetrain.drive_for(FORWARD, 400, MM)] :: custom-switch

C-Block#

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.

C-Block#
if [] :: custom-switch
Ende

Python-Steuerungscode, der in einem C-Block verwendet werden kann, umfasst Folgendes:

Beim Start wird ein C-Block verwendet, um sich zu drehen, während ein Brain-Knopf gedrückt gehalten wird.#
wenn gestartet
[Turn while a button is held down.]
if [while brain.buttonCheck.pressing():] :: custom-switch
drehe [rechts v]
Ende
Fahren stoppen

C Erweiterbar#

Der C Expandable-Block bietet Platz für Python-Kontrollcode mit mehreren Verzweigungen, z. B. if, elifoder elseWeitere Verzweigungen können durch Auswahl des Plus-Pfeils hinzugefügt werden.

C-Dehnbarer Block#
if [] :: custom-switch-expand
Ende

Python-Steuerungscode, der in einem C Expandable-Block verwendet werden kann, umfasst Folgendes:

Beim Start verwendet es einen C Expandable Block, um sich nach rechts zu drehen, wenn eine Brain-Taste gedrückt gehalten wird, und andernfalls nach links.#
wenn gestartet
[Turn right if a button is held down, otherwise turn left.]
für immer
if [if brain.buttonCheck.pressing():] :: custom-switch-expand
drehe [rechts v]
else [else:] :: custom-switch-expand
drehe [links v]
Ende
Ende

Boolescher Wert#

Der Boolean-Block bietet Platz für Python-Code, der True Falsezurückgibt. Er kann innerhalb von Blöcken mit hexagonalen Eingabefeldern platziert werden.

Boolescher Block#
<[] :: custom-switch>

Ein Boolean-Block kann eine Python-Bedingung enthalten.

Boolescher Block mit einer Python-Bedingung#
<[brain.buttonCheck.pressing()] :: custom-switch>

Ein Boolescher Block kann auch logische Operatoren verwenden:

Boolescher Block mit einem logischen Python-Operator#
<[controller.buttonRUp.pressing() and controller.buttonLUp.pressing()] :: custom-switch>

Ein Boolescher Block kann Vergleichsoperatoren verwenden, um Werte zu vergleichen:

  • Größer als: >

  • Kleiner als: <

  • Gleich: ==

  • Weitere Vergleichsoperatoren sind <=, !=, und >=

Boolescher Block mit einem Python-Vergleichsoperator#
<[brain_inertial.heading()> 100] :: custom-switch>
Beim Start wird ein Boolescher Block verwendet, um sich zu drehen, wenn ein Brain-Button gedrückt wird.#
wenn gestartet
[Spin in a circle when a button is pressed.]
für immer
wenn <[brain.buttonCheck.pressing()] :: custom-switch> dann
drehe [rechts v] für (360) Grad ▶
Ende
Ende

Reporter#

Der Reporter-Block bietet Platz für Python-Code, der einen Wert zurückgibt. Er kann innerhalb von Blöcken mit zirkulären Eingaben platziert werden.

Reporterblock#
([] :: custom-switch)

Ein Reporter-Block kann Python-Code enthalten, der einen Wert zurückgibt.

Reporterblock mit Python-Code, der einen Wert zurückgibt#
([drivetrain.heading()] :: custom-switch)

Mathematische Operatoren können in einem Reporter-Block verwendet werden:

  • Addition: +

  • Subtraktion: -

  • Division: /

  • Multiplikation: *

Reporterblock mit Python-Erweiterung#
([brain_inertial.heading() + 45] :: custom-switch)
Beim Start gibt das Programm nach der Drehung des Roboters die aktuelle Fahrtrichtung aus.#
wenn gestartet
[Turn and display the current heading.]
drehe [rechts v]
warte (2) Sekunden
Fahren stoppen
drucke ([drivetrain.heading()] :: custom-switch) auf Bildschirm ▶

Hut#

Der Hut-Block bietet Platz zum Definieren einer Python-Funktion. Blöcke, die unter dem Hut angehängt werden, bilden den Rumpf dieser Funktion.

Hutblock#
[] :: hat custom-switch

Geben Sie im Hut-Block eine Python-Funktionsdefinition ein. Parameter gehören in die Klammern. Wenn die Funktion keine Parameter benötigt, verwenden Sie leere Klammern.

Hutblock mit einer Python-Funktionsdefinition#
[def function_name(parameter):] :: hat custom-switch
Beim Start wird ein Hat-Block verwendet, um eine Funktion zu definieren und aufzurufen.#
[def drive_400():] :: hat custom-switch
[Create a function to drive the robot forward.]
fahre [vorwärts v] für (400) [mm v] ▶

wenn gestartet
[drive_400()] :: custom-switch