Tutorial

Como usar as instruções break, continue, e pass ao trabalhar com loops em Python 3

PythonDevelopment

Introdução

O uso de loops do tipo “for” e loops do tipo “while” em Python permite que você automatize e repita tarefas de maneira eficiente.

No entanto, pode acontecer de um fator externo influenciar a maneira como seu programa é executado. Quando isso ocorre, é desejável que seu programa saia de um loop completamente, ignore parte de um loop antes de continuar, ou ignore aquele fator externo. É possível realizar essas ações com as instruções break, continue e pass.

Instrução break

Em Python, a instrução break oferece a possibilidade de sair de um loop quando uma condição externa é acionada. A instrução break será colocada dentro do bloco de código abaixo da sua instrução de loop, geralmente após uma instrução condicional if.

Vamos ver um exemplo que usa a instrução break em um loop do tipo "for":

number = 0

for number in range(10):
    if number == 5:
        break    # break here

    print('Number is ' + str(number))

print('Out of loop')

Neste pequeno programa, o number da variável é inicializado em 0. Em seguida, uma instrução for constrói o loop, desde que o number da variável seja menor que 10.

Dentro do loop for, há uma instrução if que apresenta a condição que se o number da variável for equivalente ao número inteiro 5, então o loop será quebrado.

Dentro do loop também há uma instrução print() que será executada com cada iteração do loop for até que o loop seja quebrado, uma vez que está localizada após a instrução break.

Para saber quando estamos fora do loop, incluímos uma instrução final print() fora do loop for.

Quando executarmos esse código, nosso resultado será o seguinte:

Output
Number is 0 Number is 1 Number is 2 Number is 3 Number is 4 Out of loop

Isso mostra que assim que o number é avaliado como equivalente a 5, o loop é interrompido, uma vez que o programa é orientado a fazer isso com a instrução break.

A instrução break faz com que um programa seja interrompido para fora de um loop.

Instrução continue

A instrução continue dá a opção de ignorar a parte de um loop onde uma condição externa é acionada, mas continuar e completar o resto do loop. Ou seja, a iteração atual do loop será interrompida, mas o programa retornará ao topo do loop.

A instrução continue ficará dentro do bloco de código abaixo da instrução de loop, geralmente após uma instrução condicional if.

Usando o mesmo programa de loop for que na seção anterior da Instrução break, usaremos uma instrução continue, em vez de uma instrução break:

number = 0

for number in range(10):
    if number == 5:
        continue    # continue here

    print('Number is ' + str(number))

print('Out of loop')

A diferença entre usar a instrução continue, em vez de uma instrução break, é que o nosso código continuará apesar da interrupção quando a variável number for avaliada como equivalente a 5. Vamos ver nosso resultado:

Output
Number is 0 Number is 1 Number is 2 Number is 3 Number is 4 Number is 6 Number is 7 Number is 8 Number is 9 Out of loop

Aqui, Number is 5 nunca ocorre no resultado, mas o loop continua após esse ponto e imprime linhas para os números 6-10 antes de ser finalizado.

Você pode usar a instrução continue para evitar um código condicional extremamente aninhado, ou para otimizar um loop, eliminando casos que ocorram com frequência e que você gostaria de rejeitar.

A instrução continue faz com que um programa pule certos fatores que surjam dentro de um loop, mas depois continuem pelo restante do loop.

Declaração pass

Quando uma condição externa é acionada, a instrução pass permite lidar com a condição sem que o loop seja impactado; todo o código continuará sendo lido a menos que um break ou outra instrução ocorra.

Assim como ocorre com outras instruções, a instrução pass ficará dentro do bloco de código abaixo da instrução de loop, normalmente após uma instrução condicional if.

Usando o mesmo bloco de código anterior, vamos substituir a instrução break ou continue por uma instrução pass:

number = 0

for number in range(10):
    if number == 5:
        pass    # pass here

    print('Number is ' + str(number))

print('Out of loop')

A instrução pass que ocorre após a instrução condicional if está dizendo ao programa para continuar executando o loop e ignorar o fato de que a variável number é avaliada como equivalente a 5 durante uma das iterações.

Vamos executar o programa e verificar o resultado:

Output
Number is 0 Number is 1 Number is 2 Number is 3 Number is 4 Number is 5 Number is 6 Number is 7 Number is 8 Number is 9 Out of loop

Ao usar a instrução pass neste programa, notamos que o programa é executado exatamente como seria se não houvesse nenhuma instrução condicional no programa. A instrução pass diz ao programa para desconsiderar essa condição e continuar executando o programa como sempre.

A instrução pass pode criar classes mínimas, ou agir como um espaço reservado enquanto estamos trabalhando em novos códigos e pensando em um nível algorítmico antes de construir detalhes.

Conclusão

As instruções break, continue e pass em Python permitem que você use loops for e while com maior efetividade em seu código.

Para trabalhar mais com as instruções break e pass, siga nosso tutorial de projeto “Como criar um Twitterbot com Python 3 e a biblioteca Tweepy.”

Creative Commons License