Repetições
As repetições permitem executar um bloco de código múltiplas vezes.
O Python possui 2 tipos de repetições: repetições while e repetições for.
while
Sintaxe:
while condição:
bloco código 1
[else:]
bloco código 2
A repetição while repete o bloco de código 1 enquanto a condição fôr True.
Se existir a opção else, o bloco de código desta opção será executado quando a condição do while se tornar falsa.
No entanto, se a repetição while terminar por ação de um break, o código da opção else não é executado:
Exemplo 1:
nr = 1
#repete o bloco de código enquanto a condição nr < 6 fôr True:
while nr < 6:
print(nr )
nr+=1
Output:
1
2
3
4
5
Exemplo 2:
nr=0
while nr<6:
nr+=1
print("nr: ", nr)
else:
print("Condição de paragem falsa")
print("Fim da repetição")
Output:
nr: 1
nr: 2
nr: 3
nr: 4
nr: 5
nr: 6
Condição de paragem falsa
Fim da repetição
Exemplo 3:
nr=0
while nr<6:
nr+=1
if(nr==3):
break
print("nr: ", nr)
else:
print("Condição de paragem falsa")
print("Fim da repetição")
Output:
nr: 1
nr: 2
Fim da repetição
Exemplo 4:
while 1: #loop infinito
nr = int( input("Digite um nr: ") )
print( "nr: ", nr )
No exemplo acima, temos um loop infinito que só termina se houver uma condição com break ou por CTRL-C.
for
Sintaxe:
for var in sequencia:
bloco código 1
[else:]
bloco código 2
Em Python, as repetições for iteram sobre os elementos de uma sequência na ordem em que esses elementos aparecem na sequência.
Assim, de acordo com a sintaxe, a variável var vai assumindo, em cada iteração, o valor de cada elemento da sequência, e o código no corpo do for é executado.
Exemplo 1:
nomes = ["Ana", "Rita", "Luisa"]
#iteração com for sobre uma lista:
for name in nomes:
print(name)
Output:
Ana
Rita
Luisa
Exemplo 2:
nomes = "Ana Rita"
#iteração com for sobre uma string:
for ch in nomes:
print(ch)
Output:
A
n
a
R
i
t
a
A função range()
A função range() em Python é uma função interna usada para gerar sequências de números. Ela é comumente utilizada em repetições, como repetições for, para controlar iterações.
A sintaxe da função range() é:
range(start, stop, step)
start: Opcional. O número inicial da sequência. 0 se omitido.
stop: Obrigatório. O ponto final da sequência (exclusive).
step: Opcional. O incremento entre cada número na sequência. 1 se omitido.
Exemplos:
# Percorre os valores de 2 a 5, com um incremento de 1:
for i in range(2, 6):
print(i)
Output:
2
3
4
5
# Percorre os valores de 2 a 8, com um incremento de 2:
for i in range(2, 9, 2):
print(i)
Output:
2
4
6
8
# Percorre os valores de 10 a 2, com um incremento de -2:
for i in range(10, 0, -2):
print(i)
Output:
10
8
6
4
2
# Percorre os valores 0-5:
for n in range(6):
print(n)
Output:
0
1
2
3
4
5
Exemplo 2:
nomes = ["Ana", "Rita", "Luisa"]
for i in range( len(nomes) ):
print(nomes[i])
Output:
Ana
Rita
Luisa
A função range() devolve uma sequência de números entre 0 e 2, uma vez que a função len() devolve 3, o tamanho da lista ‘nomes’. Em cada iteração a variável i assume os valores de 0 a 2 o que corresponde aos indíces dos elementos da lista.
# Converte a sequência gerada pela função range() numa lista com a função list():
lista = list(range(6))
print(lista)
Output:
[0, 1, 2, 3, 4, 5]
break
A instrução break termina e execução da repetição saltando a execução do programa para a instrução imediatamente a seguir a esta:
nomes = ["Ana", "Rita", "Luisa"]
for i in range( len(nomes) ):
print(nomes[i])
if(i==1):
break
else:
print("terminou")
print("Instrução a seguir")
Output:
Ana
Rita
Instrução a seguir
continue
A instrução continue faz com que o programa passe de imediato para a iteração a seguir:
nomes = ["Ana", "Rita", "Luisa"]
for i in range( len(nomes) ):
if(i==1):
continue
print(nomes[i])
else:
print("terminou")
Output:
Ana
Luisa
terminou
pass
A instrução pass não faz nada. A única diferença entre um comentário e a pass é que o compilador não ignora esta última.
Normalmente, a instrução pass é usada durante a fase de desenvolvimento em que temos estruturas como repetições ou funções cujos corpos não podem estar vazios e que serão completados mais tarde. Colocando a instrução pass o programa está correto em termos sintáticos e essas estruturas podem ser completadas mais tarde.
Exemplo:
nomes = ["Ana", "Rita", "Luisa"]
for nome in nomes:
#O corpo do while vai ser completado mais tarde,
#substituindo a instrução pass pelo código definitivo
pass
print("Fim da repetição")