Kontrole#

Ievads#

Vadība Python valodā ļauj norādīt robotam, kad gaidīt, kad atkārtot darbības, kā pieņemt lēmumus un kad beigt projektu.

Zemāk ir visu vadības elementu saraksts, tostarp metodes un galvenie Python atslēgvārdi:

  • wait – Aptur projektu uz noteiktu laiku.

  • for – Atkārto kodu katram elementam secībā.

  • if – Izpilda kodu, ja nosacījums ir patiess.

  • if/else – Izpilda atšķirīgu kodu atkarībā no nosacījuma.

  • if/elif/else – Pārbauda vairākus nosacījumus pēc kārtas.

  • while – Atkārto kodu, kamēr nosacījums ir patiess.

  • break – Nekavējoties iziet no cikla.

  • stop_program – Beidz darbojošos programmu.

  • pass – Vietturis, ko izmanto, ja darbība nav nepieciešama.

Pagaidiet#

wait ietur noteiktu pauzi pirms pāriešanas uz nākamo koda rindu.

Usage:
wait(time, units)

Parametri

Apraksts

time

Gaidīšanas laiks, kas norādīts kā pozitīvs vesels skaitlis vai decimāldaļa.

units

Vienība, kas attēlo gaidīšanas laiku: MSEC (pēc noklusējuma) – milisekundes vai SECONDS

# Move right for one second, then stop
robot.move_at(90)
wait(1, SECONDS)
robot.stop_all_movement()

Priekš#

for atkārto darbību kopu noteiktu reižu skaitu. for var izmantot, lai cikliski pārskatītu vienumus sarakstos, kortežos, vārdnīcās, kopās, virknēs vai noteiktu ciklu skaitu ar range.

Lietojums:

for value in expression_list:
    pass

Sastāvdaļas

Apraksts

value

Pagaidu mainīgais, kas saglabā pašreizējo elementu iterācijā.

expression_list

Elementu kopums, kas tiek cikliski apstrādāts (piemēram, saraksts, virkne, diapazons).

# 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()

Ekrānā attēlo trīs drukājamus objektus.

Ja#

if tiek palaists atkāpts koda bloks, ja nosacījums ir True.

Lietojums:

if condition:
    pass

Sastāvdaļas

Apraksts

condition

Izteiksme vai mainīgais, kas tiek pārbaudīts, izpildot priekšrakstu. Ja tas ir True, tiek izpildīts kods blokā if ; ja tas ir False, bloks tiek izlaists.

# Kick when the screen is pressed
while True:
    if robot.screen.pressing():
        robot.kicker.kick(MEDIUM)
    wait(0.1, SECONDS)

Ja/Citādi#

if un else nosaka, kurš atkāptais koda bloks tiek palaists, pamatojoties uz to, vai nosacījums ir True vai False.

Lietojums:

if condition:
    pass
else:
    pass

Sastāvdaļas

Apraksts

condition

Izteiksme vai mainīgais, kas tiek pārbaudīts, izpildot priekšrakstu. Ja tas ir True, tiek izpildīts kods blokā if ; ja tas ir False, tā vietā tiek izpildīts kods blokā else.

# 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)

Ja/Elifs/Citādi#

if/elif/else struktūra atlasa, kurš atkāptais koda bloks tiks palaists, pamatojoties uz nosacījumiem:

  • if , palaiž savu bloku, ja nosacījums ir True.

  • elif pārbauda papildu nosacījumus tikai tad, ja visi iepriekšējie nosacījumi ir FalseVar izmantot vairākus elif apgalvojumus.

  • else palaiž savu bloku tikai tad, ja neviens no iepriekšējiem nosacījumiem nav True.

Lietojums:

if condition:
    pass
elif condition:
    pass
else:
    pass

Sastāvdaļas

Apraksts

condition

Izteiksme vai mainīgais, kas tiek pārbaudīts, kad izpildās priekšraksts. Pirmais nosacījums, kas ir True nosaka, kurš bloks tiks izpildīts; ja neviens nav True, tiks izpildīts bloks, kas ir else.

# 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)

Kamēr#

while atkārtoti palaiž kodu, kamēr nosacījums ir TrueTo var izmantot arī kā “uz visiem laikiem”, izmantojot True kā nosacījumu, vai kā “gaidīt līdz”, pievienojot nosacījumam not , kā parādīts tālāk sniegtajos piemēros.

Lietojums:

while condition:
    pass

Sastāvdaļas

Apraksts

condition

Izteiksme vai mainīgais, kas tiek pārbaudīts pirms katras iterācijas. Ja tas ir True, cikls turpinās; ja tas ir False, cikls apstājas.

# 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)

Pārtraukums#

break nekavējoties iziet no cikla. break var izmantot, lai izietu no cikliem, kas citādi veidotu mūžīgu ciklu.

# 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)

Apturēt programmu#

stop_program beidz darbojošos projektu.

Usage:
robot.stop_program()

Parametri

Apraksts

Šai metodei nav parametru.

# 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()

Pass#

pass daļa ir vietturis nākotnes kodam, un to var izmantot, lai izvairītos no kļūdām tukšos ciklos, nosacījumos un funkcijās.

if condition:
    pass

def function():
    pass