Controlo#

Introdução#

O controlo em Python permite dizer ao robô quando esperar, quando repetir ações, como tomar decisões e quando terminar o projeto.

A seguir, uma lista de todos os controlos, incluindo os métodos e palavras-chave principais do Python:

  • wait – Faz uma pausa no projeto durante um determinado tempo.

  • for – Repete o código para cada item de uma sequência.

  • if – Executa o código se uma condição for verdadeira.

  • if/else – Executa código diferente consoante uma condição.

  • if/elif/else – Verifica múltiplas condições por ordem.

  • while – Repete o código enquanto uma condição for verdadeira.

  • break – Sai de um ciclo imediatamente.

  • stop_program – Encerra o programa em execução.

  • pass – Espaço reservado utilizado quando não é necessária qualquer ação.

Espera#

wait pausa durante um período de tempo específico antes de passar para a linha de código seguinte.

Usage:
wait(time, units)

Parâmetros

Descrição

time

O tempo de espera, expresso como um número inteiro positivo ou decimal.

units

A unidade que representa o tempo de espera: MSEC (padrão) – milissegundos, ou SECONDS

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

Para#

for repete um conjunto de ações um número específico de vezes. for pode ser utilizado para percorrer itens em listas, tuplas, dicionários, conjuntos, strings ou para uma quantidade especificada de ciclos com range.

Utilização:

for value in expression_list:
    pass

Componentes

Descrição

value

Uma variável temporária que armazena o elemento atual na iteração.

expression_list

A coleção de elementos que está a ser percorrida em loop (por exemplo, lista, string, intervalo).

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

Apresenta três objetos a serem impressos no ecrã.

Se#

if executa o bloco de código indentado se a condição for True.

Utilização:

if condition:
    pass

Componentes

Descrição

condition

Uma expressão ou variável que é verificada quando a instrução é executada. Se for True, é executado o código dentro do bloco if ; se for False, o bloco é ignorado.

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

Se/Senão#

if e else determina qual o bloco de código indentado que é executado com base no facto de a condição ser True ou False.

Utilização:

if condition:
    pass
else:
    pass

Componentes

Descrição

condition

Uma expressão ou variável que é verificada quando a instrução é executada. Se for True, é executado o código dentro do bloco if ; se for False, o código dentro do bloco else é executado em vez disso.

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

Se/Senão/Senão#

A estrutura if/elif/else selecciona qual o bloco de código indentado que será executado com base em determinadas condições:

  • if executa o seu bloco se a condição for True.

  • elif verifica condições adicionais apenas se todas as condições anteriores forem False. Podem ser utilizadas várias instruções elif.

  • else executa o seu bloco apenas se nenhuma das condições anteriores for True.

Utilização:

if condition:
    pass
elif condition:
    pass
else:
    pass

Componentes

Descrição

condition

Uma expressão ou variável que é verificada quando a instrução é executada. A primeira condição que é True determina qual o bloco que é executado; se nenhuma for True, é executado o bloco 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)

Enquanto#

while executa o código repetidamente enquanto a condição for TrueTambém pode ser utilizado como um “para sempre” utilizando True como condição, ou um “espere até” adicionando not à condição, como se mostra nos exemplos abaixo.

Utilização:

while condition:
    pass

Componentes

Descrição

condition

Uma expressão ou variável que é verificada antes de cada iteração. Se for True, o ciclo continua; se for False, o ciclo pára.

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

Pausa#

break sai de um ciclo imediatamente. break pode ser utilizado para sair de ciclos que, de outra forma, continuariam em ciclo infinito.

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

Programação de interrupção#

stop_program termina um projeto em execução.

Usage:
robot.stop_program()

Parâmetros

Descrição

Este método não tem parâmetros.

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

Passar#

pass é um marcador de posição para código futuro e pode ser utilizado para evitar erros em loops, condicionais e funções vazias.

if condition:
    pass

def function():
    pass