Python 3 - Loops
Em geral, as instruções são executadas sequencialmente - a primeira instrução em uma função é executada primeiro, seguida pela segunda e assim por diante. Pode haver uma situação em que você precise executar um bloco de código várias vezes.
As linguagens de programação fornecem várias estruturas de controle que permitem caminhos de execução mais complicados.
Uma instrução de loop nos permite executar uma instrução ou grupo de instruções várias vezes. O diagrama a seguir ilustra uma instrução de loop -
A linguagem de programação Python fornece os seguintes tipos de loops para lidar com os requisitos de loop.
Sr. Não. | Tipo e descrição de loop |
---|---|
1 | loop while Repete uma instrução ou grupo de instruções enquanto uma determinada condição for TRUE. Ele testa a condição antes de executar o corpo do loop. |
2 | para loop Executa uma sequência de instruções várias vezes e abrevia o código que gerencia a variável de loop. |
3 | loops aninhados Você pode usar um ou mais loop dentro de qualquer outro while ou for loop. |
Declarações de controle de loop
As instruções de controle de Loop alteram a execução de sua sequência normal. Quando a execução deixa um escopo, todos os objetos automáticos que foram criados nesse escopo são destruídos.
Python suporta as seguintes instruções de controle.
Sr. Não. | Declaração de controle e descrição |
---|---|
1 | declaração de quebra Encerra a instrução de loop e transfere a execução para a instrução imediatamente após o loop. |
2 | continuar declaração Faz com que o loop pule o restante de seu corpo e teste novamente sua condição antes de reiterar. |
3 | declaração de aprovação A instrução pass em Python é usada quando uma instrução é necessária sintaticamente, mas você não deseja que nenhum comando ou código seja executado. |
Vamos examinar as instruções de controle de loop brevemente.
Iterador e gerador
Iteratoré um objeto que permite a um programador percorrer todos os elementos de uma coleção, independentemente de sua implementação específica. Em Python, um objeto iterador implementa dois métodos,iter() e next().
Objetos String, List ou Tuple podem ser usados para criar um Iterator.
list = [1,2,3,4]
it = iter(list) # this builds an iterator object
print (next(it)) #prints next available element in iterator
Iterator object can be traversed using regular for statement
!usr/bin/python3
for x in it:
print (x, end=" ")
or using next() function
while True:
try:
print (next(it))
except StopIteration:
sys.exit() #you have to import sys module for this
UMA generator é uma função que produz ou produz uma sequência de valores usando o método de rendimento.
Quando uma função geradora é chamada, ela retorna um objeto gerador sem nem mesmo iniciar a execução da função. Quando o método next () é chamado pela primeira vez, a função começa a ser executada até atingir a instrução de rendimento, que retorna o valor gerado. O rendimento mantém o controle, isto é, lembra a última execução e a segunda chamada de next () continua a partir do valor anterior.
Exemplo
O exemplo a seguir define um gerador, que gera um iterador para todos os números de Fibonacci.
#!usr/bin/python3
import sys
def fibonacci(n): #generator function
a, b, counter = 0, 1, 0
while True:
if (counter > n):
return
yield a
a, b = b, a + b
counter += 1
f = fibonacci(5) #f is iterator object
while True:
try:
print (next(f), end=" ")
except StopIteration:
sys.exit()