Ohjaus#
Johdanto#
Pythonin ohjaus antaa sinun kertoa robotille, milloin odottaa, milloin toistaa toimintoja, miten tehdä päätöksiä ja milloin lopettaa projekti.
Alla on luettelo kaikista ohjausobjekteista, mukaan lukien metodit ja Pythonin ydinavainsanat:
wait– Keskeyttää projektin tietyksi ajaksi.for– Toistaa koodin jokaiselle sekvenssin alkiolle.if– Suorittaa koodin, jos ehto on tosi.if/else– Suorittaa eri koodia ehdon mukaan.if/elif/else– Tarkistaa useita ehtoja järjestyksessä.while– Toistaa koodia niin kauan kuin ehto on tosi.break– Poistuu silmukasta välittömästi.stop_program– Lopettaa käynnissä olevan ohjelman.pass– Paikkamerkkiä käytetään, kun toimenpiteitä ei tarvita.
Odota#
wait pitää tietyn ajan tauon ennen siirtymistä seuraavalle koodiriville.
Usage:wait(time, units)
Parametrit |
Kuvaus |
|---|---|
|
Odotusaika positiivisena kokonaislukuna tai desimaalilukuna. |
|
Odotusaikaa edustava yksikkö: |
# Move right for one second, then stop
robot.move_at(90)
wait(1, SECONDS)
robot.stop_all_movement()
Sillä#
for toistaa joukon toimintoja tietyn määrän kertoja. for voi käyttää silmukoidakseen kohtia listoissa, tupleissa, sanakirjoissa, joukoissa, merkkijonoissa tai tietyn määrän silmukoita käyttäen range.
Käyttö:
for value in expression_list:
pass
Komponentit |
Kuvaus |
|---|---|
|
Väliaikainen muuttuja, joka tallentaa iteraation nykyisen elementin. |
|
Läpikäytettävät elementit (esim. lista, merkkijono, alue). |
# Move in a square path.
for index in range(4):
robot.move_for(50, 0)
robot.turn_for(RIGHT, 90)
# Print each item in the list
colors = ["Red", "Green", "Blue"]
for color in colors:
robot.screen.print(color)
robot.screen.next_row()

Jos#
if suorittaa sisennettyn koodilohkon, jos ehto on True.
Käyttö:
if condition:
pass
Komponentit |
Kuvaus |
|---|---|
|
Lauseke tai muuttuja, jota tarkistetaan lausekkeen suorituksen yhteydessä. Jos se on |
# Kick when the screen is pressed
while True:
if robot.screen.pressing():
robot.kicker.kick(MEDIUM)
wait(0.1, SECONDS)
Jos/Muuten#
if ja else määrittää, mikä sisennetty koodilohko suoritetaan sen perusteella, onko ehto True vai False.
Käyttö:
if condition:
pass
else:
pass
Komponentit |
Kuvaus |
|---|---|
|
Lauseke tai muuttuja, joka tarkistetaan lausekkeen suorituksen yhteydessä. Jos se on |
# Show one emoji when the screen is pressed,
# and a different emoji when not pressed
while True:
if robot.screen.pressing():
robot.screen.show_emoji(EXCITED)
else:
robot.screen.show_emoji(BORED)
wait(0.1, SECONDS)
Jos/Elif/Muuten#
if/elif/else -rakenne valitsee suoritettavan sisennettyjen koodilohkojen ehtojen perusteella:
ifsuorittaa lohkonsa, jos ehto onTrue.eliftarkistaa lisäehdot vain, jos kaikki edelliset ehdot ovatFalseUseitaelif-lausekkeita voidaan käyttää.elsesuorittaa lohkonsa vain, jos mikään edellisistä ehdoista ei oleTrue.
Käyttö:
if condition:
pass
elif condition:
pass
else:
pass
Komponentit |
Kuvaus |
|---|---|
|
Lauseke tai muuttuja, jota tarkistetaan lausekkeen suorituksen yhteydessä. Ensimmäinen ehto, joka on |
# Move the robot forward or reverse
# based on the position of the joystick
def when_axis_changed():
position = controller.axis1.position()
if position > 0:
robot.move_at(0)
elif position < 0:
robot.move_at(180)
else:
robot.stop_all_movement()
controller.axis1.changed(when_axis_changed)
Vaikka#
while suorittaa koodia toistuvasti niin kauan kuin ehto on TrueSitä voidaan käyttää myös “ikuisesti” käyttämällä ehtona True tai “odota kunnes” lisäämällä ehtoon not sijaan, kuten alla olevissa esimerkeissä on esitetty.
Käyttö:
while condition:
pass
Komponentit |
Kuvaus |
|---|---|
|
Lauseke tai muuttuja, joka tarkistetaan ennen jokaista iteraatiota. Jos se on |
# Keep the LEDs green while the robot is moving
robot.move_for(200, 0, wait=False)
while robot.is_move_active():
robot.led.on(ALL_LEDS, GREEN)
wait(50, MSEC)
robot.led.on(ALL_LEDS, BLACK)
while True:
# Continually flash all LEDs red then green.
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
# Wait until the screen is pressed before
# turning off the LEDs
while not robot.screen.pressing():
robot.led.on(ALL_LEDS, RED)
wait(50, MSEC)
robot.led.on(ALL_LEDS, BLACK)
Tauko#
break poistuu silmukasta välittömästi. break voidaan käyttää poistumaan silmukasta, joka muuten toistuisi loputtomiin.
# Flash LEDs until the screen is pressed
while True:
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
if robot.screen.pressing():
break
# Turn the LEDs Off
robot.led.off(ALL_LEDS)
Pysäytä ohjelma#
stop_program lopettaa käynnissä olevan projektin.
Usage:robot.stop_program()
Parametrit |
Kuvaus |
|---|---|
Tällä menetelmällä ei ole parametreja. |
# Stop the project once the screen is pressed
while True:
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
if robot.screen.pressing():
robot.stop_program()
Syöttö#
pass on paikkamerkki tulevalle koodille ja sitä voidaan käyttää virheiden välttämiseen tyhjissä silmukoissa, ehdollisissa lauseissa ja funktioissa.
if condition:
pass
def function():
pass