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 |
|---|---|
|
Gaidīšanas laiks, kas norādīts kā pozitīvs vesels skaitlis vai decimāldaļa. |
|
Vienība, kas attēlo gaidīšanas laiku: |
# Move the arm to the desired position and then blink the signal tower
arm.move_to(40, 140, 210, False)
wait(1, SECONDS)
signal_tower.set_color(SignalTower.BLUE, SignalTower.BLINK)
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 |
|---|---|
|
Pagaidu mainīgais, kas saglabā pašreizējo elementu iterācijā. |
|
Elementu kopums, kas tiek cikliski apstrādāts (piemēram, saraksts, virkne, diapazons). |
# Move the arm 4 times by 100 millimeters on the y axis
for index in range(4):
arm.move_inc(0, 100, 0)
ja#
if tiek palaists atkāpts koda bloks, ja nosacījums ir True.
Lietojums:
if condition:
pass
Sastāvdaļas |
Apraksts |
|---|---|
|
Izteiksme vai mainīgais, kas tiek pārbaudīts, izpildot priekšrakstu. Ja tas ir |
# Display the time until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
print("\033[2J")
print(brain.timer_time(SECONDS))
wait(50, MSEC)
if arm.is_done():
brain.timer_reset()
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 |
|---|---|
|
Izteiksme vai mainīgais, kas tiek pārbaudīts, izpildot priekšrakstu. Ja tas ir |
# Display the time until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
if arm.is_done():
brain.timer_reset()
else:
print("\033[2J")
print(brain.timer_time(SECONDS))
wait(50, MSEC)
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 irTrue.elifpārbauda papildu nosacījumus tikai tad, ja visi iepriekšējie nosacījumi irFalseVar izmantot vairākuselifapgalvojumus.elsepalaiž savu bloku tikai tad, ja neviens no iepriekšējiem nosacījumiem navTrue.
Lietojums:
if condition:
pass
elif condition:
pass
else:
pass
Sastāvdaļas |
Apraksts |
|---|---|
|
Izteiksme vai mainīgais, kas tiek pārbaudīts, kad izpildās priekšraksts. Pirmais nosacījums, kas ir |
# Change the signal tower light if arm can reach to the desired position
while True:
if arm.can_arm_reach_to(200, 200, 200):
signal_tower.set_color(SignalTower.BLUE, SignalTower.BLINK)
elif arm.can_arm_reach_to(300, 300, 300):
signal_tower.set_color(SignalTower.GREEN, SignalTower.BLINK)
else:
signal_tower.set_color(SignalTower.ALL, SignalTower.OFF)
wait(50, MSEC)
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 |
|---|---|
|
Izteiksme vai mainīgais, kas tiek pārbaudīts pirms katras iterācijas. Ja tas ir |
# Display the time until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
if arm.is_done():
break
else:
print("\033[2J")
print(brain.timer_time(SECONDS))
wait(50, MSEC)
# Blink blue light until the move is completed
signal_tower.set_color(SignalTower.BLUE, SignalTower.BLINK)
arm.move_to(-100, 200, 100, False)
while not arm.is_done():
wait(0.2, SECONDS)
signal_tower.set_color(SignalTower.BLUE, SignalTower.ON)
pārtraukums#
break nekavējoties iziet no cikla. break var izmantot, lai izietu no cikliem, kas citādi veidotu mūžīgu ciklu.
# Display the time until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
if arm.is_done():
break
else:
print("\033[2J")
print(brain.timer_time(SECONDS))
wait(50, MSEC)
programmas_apturēšana#
program_stop beidz darbojošos projektu.
Usage:brain.program_stop()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
# Stop the project until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
if arm.is_done():
break
else:
print("\033[2J")
print(brain.timer_time(SECONDS))
wait(50, MSEC)
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