Skip to main content

Lição 2: Ações repetidas

Agora que o Robô VR desenhou um quadrado no Art Canvas Playground usando a Caneta, você aprenderá a usar para loops e simplificar o seu projeto. Esta lição irá guiá-lo através dos passos para desenhar um quadrado no Art Canvas Playground utilizando um loop para.

Art Canvas Playground com um quadrado preto desenhado sobre ele. O robô VR está posicionado no centro do Playground, no canto inferior esquerdo do quadrado.

Resultados de Aprendizagem

  • Identifique como utilizar um ciclo for para repetir os comandos dentro do mesmo por um determinado número de vezes.
  • Identifique que o ciclo para inclui uma variável de ‘valor’ e uma função de intervalo  para identificar o número de repetições. 
  • Identifique que a função intervalo de um ciclo para identifica quantas vezes o ciclo se deve repetir.
  • Identifique que a função intervalo de um loop para pode aceitar números inteiros como parâmetros.
  • Descreva por que razão um ciclo para seria utilizado num projeto.
  • Descreva o fluxo de um projeto que contém um loop para.

Mudar o nome do projeto

  • Se o projeto da lição anterior ainda não estiver carregado, carregue o projeto Unit3Lesson1.
  • Para mudar o nome do projeto, marque a caixa de nome do projeto.
    Barra de ferramentas VR com a caixa de nome do projeto realçada. O nome na caixa é Unidade 3 Lição 1.
  • Introduza o novo nome do projetoUnit3Lesson2 e selecione "Guardar".
    Barra de ferramentas VR com a caixa de diálogo do nome do projeto aberta. O projeto foi renomeado para Unidade 3 Lição 2, e o botão salvar é destacado com uma caixa vermelha.

Ações repetidas

O ciclo for é utilizado para repetir os comandos dentro dele um determinado número de vezes. O ciclo para poupa tempo e esforço ao criar projetos em que os comandos se repetem. Em vez de perder tempo a arrastar ou a digitar comandos adicionais ou a duplicar os comandos existentes no ambiente de trabalho, o ciclo para pode ser utilizado para poupar espaço e tempo.

Este projeto utilizará um ciclo para para fazer com que o VR Robot desenhe os quatro lados de um quadrado, repetindo os comandos para desenhar um lado, quatro vezes.

  • Comece por modificar o projeto anterior, copiar o projeto abaixo ou criar um novo projeto para corresponder a este projeto base. 
def main():
	pen.move (DOWN)
	drivetrain.drive_for (FORWARD, 600, MM)
	drivetrain.turn_for (RIGHT, 90, DEGREES)
	drivetrain.drive_for (FORWARD, 600, MM)
	drivetrain.turn_for (RIGHT, 90, DEGREES)
	drivetrain.drive_for (FORWARD, 600, MM)
	drivetrain.turn_for (RIGHT, 90, DEGREES)
	drivetrain.drive_for (FORWARD, 600, MM)
	drivetrain.turn_for (RIGHT, 90, DEGREES)

 

  • Os comandos repetidos neste projeto são os comandos drive_for e turn_for . Retire os seis comandos inferiores do projeto, de modo a que apenas um comando drive_for e um comando turn_for fiquem abaixo do comando move , e o projeto fique assim: 

    def main():
        pen.move(DOWN)
        drivetrain.drive_for(FORWARD, 600, MM)
        drivetrain.turn_for(RIGHT, 90, DEGREES)
  • Arraste um ciclo for até ao fim da função principal , para que o seu projeto fique assim. Note que o ciclo for preencherá automaticamente um comando wait interno. Não remova o comando wait , isto irá garantir que o robô VR se comporta corretamente.

    def main():
        pen.move(DOWN)
        drivetrain.drive_for(FORWARD, 600, MM)
        drivetrain.turn_for(RIGHT, 90, DEGREES)
    
        for repeat_count in range(10):
            wait(5, MSEC)
  • Para que o ciclo for repita os comandos do Drivetrain para desenhar um lado do quadrado, estes comandos necessitam de estar dentro do ciclo for , que é indicado por indentação. Adicione duas linhas entre o ciclo for e o comando wait para libertar espaço para os comandos Drivetrain. O mesmo projeto acima, com duas linhas de espaço adicionadas entre o comando for e o comando wait.
  • De seguida, para mover os comandos Drivetrain dentro do ciclo for , copie e cole os comandos abaixo do cabeçalho do ciclo for , destaque os comandos e arraste os comandos drive_for e turn_for entre o cabeçalho do ciclo e o comando wait ou copie-os e cole-os do projeto abaixo.
def main():
	pen.move(DOWN)
	
	for value in range(10):
		drivetrain.drive_for(FORWARD, 600, MM)
		drivetrain.turn_for(RIGHT, 90, DEGREES)
		wait(5, MSEC)
  • Certifique-se de que os comandos dentro do ciclo for estão devidamente indentados, utilizando a linha cinzenta à esquerda como guia que indica quais os comandos que estão dentro do ciclo for

Para sua informação

A indentação é muito importante em Python. O recuo dos comandos determina como um projeto é executado. No caso de um ciclo for , os comandos recuados no mesmo serão executados como parte do ciclo. Você pode usar as linhas à esquerda dos comandos, como guias visuais de como os comandos estão sendo agrupados dentro de um loop. 

O projeto de cima, com o texto Linha "orientadora" e seta apontando para a linha cinza claro que indica o recuo correto dos comandos dentro de um loop for. Um colchete vermelho ao redor dos três últimos comandos mostra que eles estão uniformemente recuados e alinhados dentro do loop for.

Erros na indentação podem afetar o fluxo do seu projeto e fazer com que o seu projeto não seja executado como pretendido. A falta de indentação, ou indentação desigual, como mostrado aqui, deve ser evitada para que seu código funcione como pretendido.

Dois exemplos comuns de indentação incorreta em um loop for lado a lado, com grandes x's vermelhos sobre eles para enfatizar que estão incorretos. O projeto à esquerda é o projeto desta lição, mas não há recuo dentro do loop for. O projeto à direita é o projeto desta lição, mas com os três comandos inferiores, todos recuados em diferentes graus.

O VEXcode VR pode solicitar que você resolva erros de indentação antes de poder executar seu projeto. Estes erros podem ser identificados na Consola de Impressão, para que possa resolver facilmente o problema e executar o seu projeto.O projeto desta lição é mostrado à esquerda. O console de impressão no VEXcode VR é mostrado à direita, com uma mensagem de erro vermelha referindo-se a um recuo inesperado mostrado à direita. Uma grande seta vermelha se estende da mensagem de erro até a linha no projeto que contém o erro.

 

 

  • Agora que os comandos do Drivetrain para desenhar um lado do quadrado estão dentro do ciclo, o parâmetro da função range pode ser definido. Para desenhar um quadrado, quatro lados devem ser desenhados. Para repetir os comandos quatro vezes, defina o parâmetro da função range no cabeçalho do ciclo for para “4” para que um robô VR desenhe todos os quatro lados de um quadrado.
    O projeto desta lição, com o parâmetro da função range no loop for alterado de 10 para 4.

Para sua informação

A função intervalo no cabeçalho do ciclo for pode aceitar números inteiros. Decimais (ou flutuadores) não funcionarão como um parâmetro para um loop for. O parâmetro predefinido para a função intervalo é '10'. 

Para o comando loop com o número inteiro 10 no parâmetro.
  • Selecione o botão "Abrir Playground" para abrir o Art Canvas Playground, se ainda não estiver aberto, e inicie o projeto.
    Barra de ferramentas VEXcode VR com o botão Abrir Playground no canto superior direito destacado com uma caixa vermelha.
  • Veja o robô VR avançar e virar à direita quatro vezes no Art Canvas Playground para desenhar um quadrado com a caneta.

    Art Canvas Playground com um quadrado preto desenhado sobre ele. O robô VR está posicionado no centro do Playground, no canto inferior esquerdo do quadrado.

Selecione o botão Seguinte para continuar com o resto desta lição.