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

  • program_stop – 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

# Turn right for one second
drivetrain.turn(RIGHT)
wait(1, SECONDS)
drivetrain.stop()

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):
    drivetrain.drive_for(FORWARD, 100, MM)
    drivetrain.turn_for(RIGHT, 90)

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.

# Turn after the Bumper Switch is pressed
while True:
    if bumper_switch.pressing():
        drivetrain.turn_for(RIGHT, 90)
    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.

# Turn when the Bumper Switch is pressed
while True:
    if bumper_switch.pressing():
        drivetrain.turn(RIGHT)
    else:
        drivetrain.stop()
    wait(0.1, SECONDS)

ja/elif/cits#

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.

# Change the Optical Sensor light while turning
    drivetrain.turn(RIGHT)
    while True:
        if drivetrain.heading() < 120:
            optical_sensor.set_light(LEDStateType.OFF)
        elif drivetrain.heading() < 240:
            optical_sensor.set_light_power(50, PERCENT)
        else:
            optical_sensor.set_light_power(100, PERCENT)
        wait(0.2, SECONDS)

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.

# Turn when the Bumper Switch is pressed
while True:
    if bumper_switch.pressing():
        drivetrain.turn(RIGHT)
    else:
        drivetrain.stop()
    wait(0.1, SECONDS)

# Turn the other direction when the screen is pressed
drivetrain.turn(LEFT)
while not brain.screen.pressing():
    wait(0.2, SECONDS)
drivetrain.turn(RIGHT)

pārtraukums#

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

# Stop turning after pressing the screen
while True:
    drivetrain.turn(RIGHT)
    if brain.screen.pressing():
        break
    wait(0.2, SECONDS)
drivetrain.stop()

programmas_apturēšana#

program_stop beidz darbojošos projektu.

Usage:
brain.program_stop()

Parametri

Apraksts

Šai metodei nav parametru.

# Stop the project after pressing the screen
while True:
    drivetrain.turn(RIGHT)
    if brain.screen.pressing():
        break
    wait(0.2, SECONDS)
brain.program_stop()

caurlaide#

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