Estruturas de repetição

As estruturas de repetição são utilizadas quando queremos que um bloco de código seja executado várias vezes.

Em Python existem duas formas de criar uma estrutura de repetição:

  • O for é usado quando se quer iterar sobre um bloco de código um número determinado de vezes.

  • O while é usado quando queremos que o bloco de código seja repetido até que uma condição seja satisfeita. Ou seja, é necessário que uma expressão booliana dada seja verdadeira. Assim que ela se tornar falsa, o while para.

Nota

Na linguagem Python a indentação é obrigatória. assim como nas estruturas de controle, as estruturas de repetição também precisam.

>>> # Aqui repetimos o print 3 vezes
>>> for n in range(0, 3):
...     print(n)
...
0
1
2

>>> # Aqui iniciamos o n em 0, e repetimos o print até que seu valor seja maior ou igual a 3
>>> n = 0
>>> while n < 3:
...     print(n)
...     n += 1
...
0
1
2

O loop for em Python itera sobre os itens de um conjunto, sendo assim, o range(0, 3) precisa ser um conjunto de elementos. E na verdade ele é:

>>> list(range(0, 3))
[0, 1, 2]

Para iterar sobre uma lista:

>>> lista = [1, 2, 3, 4, 10]
>>> for numero in lista:
...     print(numero ** 2)
...
1
4
9
16
100

Isso se aplica para strings também:

>>> # Para cada letra na palavra, imprimir a letra
>>> palavra = "casa"
>>> for letra in palavra:
...     print(letra)
...
c
a
s
a

Em dicionários podemos fazer assim:

>>> gatinhos = {"Português": "gato", "Inglês": "cat", "Francês": "chat", "Finlandês": "Kissa"}
>>> for chave, valor in gatinhos.items():
...     print(chave, "->", valor)
...
Português -> gato
Inglês -> cat
Francês -> chat
Finlandês -> Kissa

Para auxiliar as estruturas de repetição, existem dois comandos:

  • break: É usado para sair de um loop, não importando o estado em que se encontra.

  • continue: Funciona de maneira parecida com a do break, porém no lugar de encerrar o loop, ele faz com que todo o código que esteja abaixo (porém ainda dentro do loop) seja ignorado e avança para a próxima iteração.

Veja a seguir um exemplo de um código que ilustra o uso desses comandos. Note que há uma string de documentação no começo que explica a funcionalidade.

"""
Esse código deve rodar até que a palavra "sair" seja digitada.
* Caso uma palavra com 2 ou menos caracteres seja digitada, um aviso
  deve ser exibido e o loop será executado do início (devido ao
  continue), pedindo uma nova palavra ao usuário.
* Caso qualquer outra palavra diferente de "sair" seja digitada, um
  aviso deve ser exibido.
* Por fim, caso a palavra seja "sair", uma mensagem deve ser exibida e o
  loop deve ser encerrado (break).
"""

>>> while True:
...     string_digitada = input("Digite uma palavra: ")
...     if string_digitada.lower() == "sair":
...         print("Fim!")
...         break
...     if len(string_digitada) < 2:
...         print("String muito pequena")
...         continue
...     print("Tente digitar \"sair\"")
...
Digite uma palavra: oi
Tente digitar "sair"
Digite uma palavra: ?
String muito pequena
Digite uma palavra: sair
Fim!

Exercícios

  1. Calcule a tabuada do 13.

  2. Ler do teclado uma lista com 5 inteiros e imprimir o menor valor.

  3. Ler do teclado uma lista com 5 inteiros e imprimir True se a lista estiver ordenada de forma crescente ou False caso contrário.

  4. Exiba em ordem decrescente todos os números de 500 até 10.

  5. Ler do teclado 10 números e imprima a quantidade de números entre 10 e 50.

  6. Ler do teclado a idade e o sexo de 10 pessoas, calcule e imprima:

    1. idade média das mulheres

    2. idade média dos homens

    3. idade média do grupo

  7. Calcule o somatório dos números de 1 a 100 e imprima o resultado.

  8. Receba dois números inteiros correspondentes à largura e altura. Devolva uma cadeia de caracteres # que representa um retângulo com as medidas fornecidas.

  9. Ler do teclado um número inteiro e imprimir se ele é primo ou não.

  10. Um restaurante que enfrenta problemas com sua capacidade de clientes pediu sua ajuda para fazer um programa para saber quando eles atingem sua capacidade máxima. Faça um programa que leia um número inteiro da capacidade máxima do restaurante, e depois pergunte e leia a quantidade de clientes que chegaram até ocupar toda a capacidade do restaurante e quando lotar imprima na tela «Restaurante lotado, não há mais mesas disponíveis».

  11. O grupy-sanca tem uma fixação com números primos, e é uma tradição marcar seus eventos em horas e minutos que sejam números primos, como por exemplo 19:31.

    Você ficou responsável por marcar o próximo Pylestras, e, seguindo a tradição, gostaria de marcar o evento para um horário cuja hora e minuto sejam números primos.

    Para escolher a melhor opção, você gostaria de saber todos os horários que satisfazem esta condição!

    Crie um programa que imprime no formato HH:MM todos os horários cuja hora e minuto são números primos.

    Nota

    Zero não é um número primo e divisões por zero podem estragar suas contas!