Curso de Desenvolvimento em Python
Capítulo
>
Nível

Condições
Declarações break e continue

Objetivo

Limpe algumas ervas daninhas na passagem entre os edifícios usando condições de loop.

A passagem entre os edifícios tem ervas daninhas crescendo; recolha todas elas e descarte-as usando loops. Existem formas de automatizar esse processo utilizando condições de loop.

Crie uma variável chamada bag e use-a para armazenar as ervas daninhas conforme as recolhe. Use um loop while com condições para automatizar o processo; há dez (10) ervas daninhas no total.

while True: player.move_forward() bag += 1 if bag == 10: break

Ao definir o loop while como True, o loop não terminará a menos que o operador break seja usado para encerrá-lo. Cada ciclo adiciona uma erva daninha ao saco e verifica quantas foram recolhidas para interromper o loop. A instrução if é utilizada para checar se o loop deve break ou não, verificando quantas ervas estão no bag e interrompendo se a quantidade desejada for atingida.

Após navegar pela passagem, use um loop for para despejar as ervas nos recipientes utilizando a função place() nos pontos marcados com X. Entretanto, a quantidade de passos entre cada recipiente é desigual, pois há um intervalo entre eles. Usando o operador continue, você pula um ciclo do loop ao testar uma condição via instrução if.

for x in range(3): player.move_forward() if x == 1: continue player.turn_right() player.place(bag/2) player.turn_left()

No código acima, a instrução if verifica se x, que representa o número de ciclos do loop, está igual a 1. Esse loop for executa três (3) vezes, conforme definido por range(), já que x começa em 0 e passa por 0, 1 e 2 antes de concluir. Como se verifica se o ciclo do loop está em 1, o código abaixo do continue não será executado, sendo ignorado se a condição for atendida. Com isso, evitamos o intervalo entre os dois recipientes, pulando o ciclo do meio.

Como há duas (2) caixas, utilize a função place() para despejar as ervas armazenadas na variável bag dividindo o total depositado, assim: player.place(bag/2) .

Depois de coletar e posicionar as ervas no local adequado, chegue à saída marcada com uma estrela para completar o nível.

Livro de Código