CSE 110: Introdução à Programação

S04 - Atividade de Aprendizagem (2 de 3): Laços For (For Loops)

Visão Geral

Nesta aula, você continuará trabalhando com loops e aprendendo como resolver problemas mais complexos.

Material de Preparação

Na aula anterior, você aprendeu sobre loops while. Nesta aula, você aproveitará aqueles fundamentos para aprender sobre outro tipo de loop, chamado loop for.

Link Direto: Laços de Repetição For

Link Direto: Laços de Repetição For Usando Range

Conforme mostrado, existem algumas maneiras diferentes de instruir o computador a percorrer o código repetidamente em loop.

Loop em lista

Um exemplo de loop é percorrer, ou iterar, cada item de uma coleção ou lista, um de cada vez. Você aprenderá sobre listas com mais detalhes nas próximas aulas, mas o exemplo a seguir mostra um loop percorrendo uma lista de palavras para exibi-las na tela, uma de cada vez:


itens = ["giz", "tesoura", "papel", "cola", "marcador", "canetas"]

for item in itens:
    print(f"O item é: {item}")

A saída deste código é:


O item é: giz
O item é: tesoura
O item é: papel
O item é: cola
O item é: marcador
O item é: canetas    

Assim como acontece com as instruções if, os dois-pontos : no final da sua instrução for informam ao computador que há um bloco de código chegando. Em seguida, você indenta todo o código que está no bloco. O código indentado é o código que será executado a cada item da lista.

Ao fazer o loop de cada item, você pode fazer muito mais com ele do que simplesmente exibi-lo na tela. Você pode incluir uma instrução if para verificar se ele atende a certas condições, e então usá-lo em uma expressão matemática ou em qualquer outra coisa que você aprendeu a fazer em seus programas.

Perguntas Frequentes:

E a variável item? É um nome especial? Onde isso é definido?

Não há nada de especial no nome item. Essa variável poderia facilmente ter sido chamada de coisa ou material_de_papelaria.

A sintaxe do loop for aqui é muito engenhosa. Quando você digita for item in itens:, a variável de lista itens já deve existir, mas a variável para cada elemento individual da lista, neste caso item, é definida diretamente na instrução. Resumindo, você está dizendo: "Examine cada elemento desta lista e atribua uma nova variável item para ser o valor a cada iteração."

Loop em números

É muito comum na programação querer fazer um loop em uma série de números. Você poderia criar uma lista de números, assim como a lista de palavras do último exemplo, assim:


numeros = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Mas isso pode demorar muito se você quiser trabalhar com uma grande quantidade de números, então existe uma maneira mais fácil que é usando range.

Você pode criar a mesma lista de números assim:


numeros = range(10)

Isso cria uma lista de números para você que começa em 0 e vai até (mas não incluindo) 10.

Você poderia atribuir esta lista a uma variável como numeros, como no exemplo acima, e então percorrer cada número na lista de números. Mas é mais comum apenas colocar o código range diretamente no seu loop for, da seguinte forma:


for numero in range(10):
    print(numero)

A saída deste código é:


0
1
2
3
4
5
6
7
8
9

Dica do Instrutor:

Nas linguagens de programação, geralmente começamos a contar em 0 em vez de 1. Existem razões para isso, mas mais do que tudo, é algo com o qual você terá que se acostumar.

A função range oferece outras opções, como começar com um número diferente, contar de 3 em 3 ou até retroceder. Em todos esses casos, a ideia de fazer o loop nos valores é a mesma. Você começa com o primeiro e então continua, um por um, na lista.

Para começar com um número diferente, você fornece dois valores para a função range. Se você fornecer dois números, começará com o primeiro e continuará até (mas não incluindo) o segundo.

Se você fornecer três valores para a função range, ela usará o terceiro número como o “tamanho do passo", ou seja, de quanto em quanto o programa vai contar.


# Este loop começará com 100 e irá até, mas não incluindo, 200
for i in range(100, 200):
    print(i)

# Este loop fará a mesma coisa, mas desta vez contará de 10 em 10
for i in range(100, 200, 10):
    print(i)

Loops dentro de loops

Um loop repetirá automaticamente qualquer código que esteja em seu corpo. Esse código pode incluir instruções if, matemática, novas definições de variáveis ​​ou qualquer outra coisa, incluindo outros loops!

O exemplo a seguir exibe os números de 0 a 4:


for i in range(5):
    print(i)

Saída:


0
1
2
3
4

Podemos adicionar um segundo loop interno que exiba os números 10-12, com dois caracteres - na frente para facilitar a visualização.


for i in range(5):
    print(i)
    for j in range(10, 13):
        print(f"--{j}")

Saída:


0
--10
--11
--12
1
--10
--11
--12
2
--10
--11
--12
3
--10
--11
--12
4
--10
--11
--12

Observe como o loop interno é executado toda vez que o loop externo exibe seu número. Os loops internos podem ser muito úteis na iteração através de uma estrutura bidimensional, como os pixels de uma imagem.

Dica do Instrutor:

Embora costumemos preferir nomes de variáveis ​​que sejam mais descritivos do que uma única letra, se a variável for usada apenas para contagem em um loop simples, é considerado padrão usar i. Então, se você tiver um loop interno, use j. Para um terceiro loop interno, o padrão é k. Se você tiver mais de três loops, considere se existe uma maneira mais simples de realizar sua tarefa e, se realmente não houver, você deve pelo menos passar a utilizar nomes de variáveis ​​mais descritivos nesse ponto.

Instruções da Atividade

Escreva um programa em Python que execute cada uma das seguintes funções:

  1. Dada a seguinte lista de itens (copie e cole esta linha em seu programa):

    
    cores = ["vermelho", "azul", "verde", "amarelo"]
    

    Use um loop for para percorre esta lista item por item e exibir cada um em sua própria linha, da seguinte maneira:

    
    vermelho
    azul
    verde
    amarelo
    
  2. Use um loop for para exibir os números de 1 a 8, um número em cada linha, da seguinte maneira:

  3. 
    1
    2
    3
    4
    5
    6
    7
    8
    
  4. Use um loop for para exibir os números pares (dica: conte de 2 em 2) de 2 a 20, um número em cada linha, da seguinte maneira:

  5. 
    2
    4
    6
    8
    10
    12
    14
    16
    18
    20
    

    Exemplo de Solução

    Exemplo de Solução

    Quando terminar seu programa, por favor, consulte o exemplo de solução para comparar sua abordagem com a apresentada.

    Primeiro, trabalhe para concluir o programa sem consultar o exemplo de solução. Caso tenha trabalhado por um longo tempo e ainda enfrente dificuldades, sinta-se à vontade para usar o exemplo para ajudá-lo a finalizar seu programa.

    Procedimento de Teste

    Verifique se seu programa funciona corretamente seguindo cada etapa deste procedimento de teste:

    1. Verifique se as cores são exibidas conforme desejado.

    2. Verifique se a saída da parte 2 não inclui 0.

    3. Verifique se a saída da parte 2 não inclui 9.

    4. Verifique se a saída da parte 3 não inclui números ímpares.

    5. Verifique se a saída da parte 3 começa em 2 e termina em 20.

    Envio de Tarefa

    Quando você tiver concluído todas as atividades de aprendizagem desta semana, volte ao Canvas e responda ao respectivo questionário.

    Próxima Atividade

    Outros Links: