Växla#

Introduktion#

Switchblock hjälper elever att övergå från blockbaserad kodning till textbaserad kodning. Med Switchblock kan eleverna skriva Python-kod direkt i ett blockprojekt – skriva kommandon, villkor, värden eller funktionsdefinitioner – samtidigt som de bygger resten av projektet med block. Enskilda block kan också konverteras till motsvarande Python-kommandon.

För att lära dig hur man skriver Python-kommandon, metoder och operatorer, se VEX V5 Python API.

Eftersom Switch-block innehåller Python-kod måste stavning, interpunktion och indentering vara korrekta för att projektet ska köras som förväntat.

Nedan följer en lista över alla Switch-block:

Byt block — Lägg till Python-kod i ett Blocks-projekt.

  • Stack — Ger ett utrymme för att skriva Python-kommandon som körs i sekvens med andra stackblock.

  • C Block — Ger ett utrymme för att skriva Python-kontrollkod, till exempel if, whileeller for -satser.

  • C Expanderbar — Ger utrymme för att skriva Python-kontrollkod med flera grenar, till exempel if, elifeller else.

  • Booleskt värde — Ger ett mellanslag för att skriva Python-kod som returnerar True eller False.

  • Reporter — Ger ett utrymme för att skriva Python-kod som returnerar ett värde.

  • Hat — Ger ett utrymme för att definiera en Python-funktion.

Stack#

Blocket Stack ger ett utrymme för att skriva Python-kommandon som körs i sekvens med andra stackblock.

Stackblock#
[] :: custom-switch

Ett Stack-block kan innehålla en rad eller flera rader Python-kod.

När den startas, använder den ett Stack-block för att köra framåt, väntar och stannar sedan.#
när startad :: hat events
[Drive forward, then stop.]
[drivetrain.drive(FORWARD)] :: custom-switch
vänta [2] sekunder
stoppa körning

C-blocket#

C-blocket ger ett utrymme för att skriva Python-kontrollkod, till exempel if, whileeller for -satser. Block som placeras inuti C-blocket körs som en del av den Python-kontrollstrukturen.

C-blocket#
if [] :: custom-switch
avsluta

Python-kontrollkod som kan användas i ett C-block inkluderar:

Vid start används ett C-block för att köra framåt när skärmen trycks ned.#
när startad :: hat events
[Drive forward when the screen is pressed.]
för alltid
if [if brain.screen.pressing():] :: custom-switch
kör [framåt v] i [200] [mm v] ▶
avsluta
avsluta

C Expanderbar#

Blocket C Expandable ger utrymme för att skriva Python-kontrollkod med flera grenar, till exempel if, elifeller elseYtterligare grenar kan läggas till genom att välja pluspilen.

C Expanderbart block#
if [] :: custom-switch-expand
avsluta

Python-kontrollkod som kan användas i ett C Expandable-block inkluderar:

När den startas, använder den ett C Expandable-block för att svänga åt höger när skärmen trycks ner och åt vänster annars.#
när startad
[Turn right when the screen is pressed, otherwise turn left.]
för alltid
if [if brain.screen.pressing():] :: custom-switch-expand
sväng [höger v]
else [else:] :: custom-switch-expand
sväng [vänster v]
avsluta
avsluta

Booleansk#

Blocket Booleskt ger ett utrymme för att skriva Python-kod som returnerar True eller FalseDet kan placeras inuti block med hexagonala indata.

Booleskt block#
<[] :: custom-switch>

Ett booleskt-block kan innehålla ett Python-villkor.

Booleskt block med ett Python-villkor#
<[bumper_a.is_pressed()] :: custom-switch>

Ett booleskt-block kan också använda logiska operatorer:

Booleskt block med en logisk operator i Python#
<[bumper_a.is_pressed() or bumper_b.is_pressed()] :: custom-switch>

Ett booleskt-block kan använda jämförelseoperatorer för att jämföra värden:

  • Större än: >

  • Mindre än: <

  • Lika med: ==

  • Andra jämförelseoperatorer inkluderar <=, !=och >=

Booleskt block med en Python-jämförelseoperator#
<[drivetrain.get_heading()> 100] :: custom-switch>
När den startas, använder den ett booleskt block för att köra framåt varje gång skärmen trycks ned.#
när startad :: hat events
[Drive forward whenever the screen is pressed.]
för alltid
om <[brain.screen.pressing()] :: custom-switch> då
kör [framåt v] i [200] [mm v] ▶
avsluta
avsluta

Reporter#

Blocket Reporter ger ett utrymme för att skriva Python-kod som returnerar ett värde. Det kan placeras inuti block med cirkulära indata.

Reporterblock#
([] :: custom-switch)

Ett Reporter-block kan innehålla Python-kod som returnerar ett värde.

Reporterblock med Python-kod som returnerar ett värde#
([drivetrain.rotation()] :: custom-switch)

Matematiska operatorer kan användas i ett Reporter-block:

  • Addition: +

  • Subtraktion: -

  • Division: /

  • Multiplikation: *

Reporterblock med Python-tillägg#
([drivetrain.rotation() + 45] :: custom-switch)
När den startas skrivs drivlinans rotation ut medan roboten roterar.#
när startad :: hat events
[Display the rotation while turning.]
sväng [höger v] i [450] grader ◀ och vänta inte
för alltid
rensa alla rader
skriv ut ([drivetrain.rotation()] :: custom-switch) ▶
vänta [0.1] sekunder
avsluta

Hatt#

Blocket Hat ger ett utrymme för att definiera en Python-funktion. Block som är kopplade under Hat blir huvuddelen av den funktionen.

Hattblock#
[] :: hat custom-switch

Skriv en Python-funktionsdefinition i Hat-blocket. Parametrar placeras inom parenteserna. Om funktionen inte använder parametrar, använd tomma parenteser.

Hat-block med en Python-funktionsdefinition#
[def function_name(parameter):] :: hat custom-switch
När den startas, använder den ett Hat-block för att definiera och anropa en funktion.#
[def drive_400():] :: hat custom-switch
[Create a function to drive the robot forward.]
kör [framåt v] i (400) [mm v] ▶

när startad :: hat events
[drive_400()] :: custom-switch