Domine os loops for no Python

Tal como o while, o laço for é uma declaração da linguagem Python (e de inúmeras outras) voltada para a iteração, que permite a um bloco de código ser repetido por um número determinado de vezes.
Presente em quase todas as linguagens de programação, se apresenta de formas variadas — diferindo na sintaxe e na semântica entre uma linguagem e outra, claro.
No Python, os laços for são poderosos e muito versáteis — podendo ser usados quase sempre que se precisar de um loop.
As diferenças entre while e for são discutidas neste artigo. Recomendo a leitura.

Sintaxe do loop for

O laço for “caminha” entre itens de listas, tuplas, strings, chaves de dicionários, entre muitos outros objetos iteráveis.
O laço sempre começa com a palavra ‘for’ seguida de um nome arbitrário de variável, que irá armazenar os valores da sequência de objetos que segue.
Basicamente, a sintaxe é assim:


for <variável> in <sequência>:
	<declaração>

Dentro deste loop, é possível acrescentar outros for aninhados, declarações while, if, else etc.
Abra uma shell Python. Vamos entender melhor o conceito, através de exemplos práticos.
Abaixo, temos uma lista de linguagens de programação — que serão exibidas, uma de cada vez, dentro do laço.


>>> linguagens = ["C", "C++", "Perl", "Python", "Java"] 
>>> for i in linguagens:
...     print(i)
... 

C
C++
Perl
Python
Java
>>> 

Agora, experimente incluir um if e um else neste bloco de código:


>>> for i in linguagens:
...     if i == "Python":
...             print(" ... a próxima da lista, é a que gosto mais: ")
...     else:
...             print(" Uma ótima opção para escrever seus programas: ")
...     print(i)
... 
 Uma ótima opção para escrever seus programas: 
C
 Uma ótima opção para escrever seus programas: 
c++
 Uma ótima opção para escrever seus programas: 
Perl
 ... a próxima da lista, é a que gosto mais: 
Python
 Uma ótima opção para escrever seus programas:
Java

O texto Como usar loops while e for no Python aborda este assunto de maneira mais básica.
Veja um exemplo de uso da declaração break — cuja função é interromper aquela parte do laço:


cidades=["Campos do Jordão", "Urupema", "Uruguaiana", "São José dos Ausentes", "Cruz Alta", "Monte Verde", "Nova Friburgo"]
for lugar in cidades:
    if lugar == "Cruz Alta":
            print("Chega de frio, por favor!")
            break
    print("Que friozinho gostoso!")

else:
    print("Estou feliz de não precisar passar mais frio...")

print("Hora de arrumar as malas.")

Use a função range() em conjunto com o for, no Python

A função range() cria uma lista de números, sob determinadas condições.
Pode ser uma forma bem simples de especificar a quantidade de ciclos de um laço for.
A função aceita até 3 opções — mas é comumente usada com apenas uma. Veja um exemplo básico:


>>> for b in range(5):
...     print(b)
... 
0
1
2
3
4
>>> 

Acima, a função range() cria uma lista de 5 números (0 a 4), que são “imprimidos” um a um.
Fica fácil fazer um bloco de código se repetir pelo número exato de vezes que você deseja, combinando o for com esta função.
Pelo menos é mais fácil do que este aqui:


>>> for i in '01234':
...     print(i)
... 
0
1
2
3
4
>>>

Declarações for aninhadas no Python

Segue um programinha que calcula números pitagóricos abaixo de um número máximo (que você determina, através da função input()).
Note que o módulo de matemática math do Python é carregado logo no início, para permitir que possamos calcular a raiz quadrada de alguns números.


# importando a biblioteca sqrt do módulo math
from math import sqrt

# obtendo o número máximo
n = int(input("Valor num. máximo: "))
for a in range(1, n+1):
        for b in range(a,n):
                c_square = a**2 + b**2
                c = int(sqrt(c_square))
                if((c_square - c**2) == 0):
                        print(a, b, c)

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 49 outros assinantes

Deixe uma resposta