Estruturas de Repetição – Comando for em Python

Atividade 1 – Respostas diretas

Do que se trata o conteúdo? É uma aula sobre estruturas de repetição (loops) em Python, com foco no comando for.

Principais assuntos (exemplos)

  • Iteração sobre iteráveis (lista, string, range) – ex.: for i in [1,2,3]:
  • Uso do range (start, stop, step) – ex.: for i in range(1,20,2):
  • Acumuladores – ex.: somar números pares com acumulador = acumulador + x
  • Loops aninhados – ex.: percorrer nomes e, dentro, percorrer cada caractere para encontrar vogais.

Ponto de maior atenção É garantir que o número de iterações seja finito (evitar loops infinitos) e inicializar corretamente variáveis acumuladoras.

Conclusão O for permite percorrer sequências de forma controlada, usar range para gerar índices, acumular resultados e combinar loops para tarefas mais complexas.

Atividade 2 – Resumo dos tópicos

1 Estruturas de Repetição

 1.1 Comando for

  1.1.1 Iteração sobre listas

   O for i in lista atribui a i cada elemento da lista, executando o bloco indentado para cada um.

  1.1.2 Iteração sobre strings

   Cada caractere da string é atribuído a uma variável, permitindo, por exemplo, filtrar vogais.

  1.1.3 Iteração com range

   range(stop) – início padrão 0, passo padrão 1.

   range(start, stop) – passo ainda 1.

   range(start, stop, step) – controla incremento.

   Ex.: for i in range(1,20,2): gera 1,3,…,19.

 1.2 Acumuladores

  Variáveis que armazenam resultados parciais (ex.: soma de pares). Devem ser inicializadas antes do loop.

 1.3 Loops Aninhados

  Um for interno dentro de outro externo. Cada iteração do externo executa todo o bloco interno.

  Exemplo: percorrer lista de nomes e, para cada nome, percorrer seus caracteres para imprimir vogais.

 1.4 Atenção a loops infinitos

  O número de iterações deve ser finito; loops sem condição de parada são erros lógicos.

Atividade 3 – Mapa Mental

mindmap root((Estruturas de Repetição)) sub1(Comando for) sub1a(Iteráveis) sub1a1(Listas) sub1a2(Strings) sub1a3(range) sub1b(Acumuladores) sub1c(Loops Aninhados) sub2(Atenção) sub2a(Número finito de iterações) sub2b(Inicialização de variáveis)

Questões sobre o assunto

1. Qual é o valor padrão de start e step ao usar range(stop)?
1.50 pontos Média

Resposta correta: A) start = 0 e step = 1

Quando apenas o parâmetro stop é informado, range começa em 0 e avança de 1 em 1.

2. O código for i in range(1, 20, 2): print(i) exibirá quais valores?
2.50 pontos Difícil

Resposta correta: B) 1, 3, 5, …, 19

O range inicia em 1, termina antes de 20 e avança de 2 em 2.

3. No código abaixo, de loops aninhados que percorre a lista ['João', 'Roberto', 'Rafael'], quantas vezes a verificação if c in 'aeiou': será executado?
2.50 pontos Difícil
count = 0
l = ['João', 'Roberto', 'Rafael']
for n in l:
   for c in n:
      if c in 'aeiou':
         count += 1
print(f"Vogais encontradas: {count}")

Resposta correta: D) 17 vezes

São 4 + 7 + 6 = 17 caracteres (incluindo o “ã” de “João”). Cada caractere gera uma iteração interna.

4. Qual das opções abaixo implementa corretamente a soma dos números pares de 1 a 100 usando for e um acumulador?
3.50 pontos Extrema

Resposta correta: C)

Inicializa‑se o acumulador em 0, itera‑se de 1 a 100, soma‑se apenas os pares e, ao final, imprime‑se o total (2500).

Pontuação Total
0.00

Texto original

O texto original pode conter falhas de gramática ou de concordância, isso ocorre porque ele foi obtido por um processo de extração de texto automático.
Texto extraído do video Algoritmos e Programação de Computadores I - Estruturas de repetição - for (LIBRAS)

O Lá pessoal bem-vindos novamente a nossa disciplina de algoritmos e pro acanação de computadores 1.
A gente vai agora nessa videoaula aprender uma nova conceito que são as estruturas de repetição.
Nas nossas últimas videoaulas, a gente viu a parte de estruturas d condição.
E agora dando procedimento, a gente vê as estruturas d condes de repetição.
Inicialmente, vamos aprender o comando for da linguagem Python, que é uma das maneiras de você colocar, adicionar a funcionalidade de repetir um bloco de instruções dependendo de uma condição que deve ser satisfeita.
Bom, mas vamos ver inicialmente o conceito mais a definição de estruturas de repetição, que essas estruturas são estruturas de controle, de fluxo, assim como as de condição, que permitem repetir uma sequência de comando.
É importante aqui que a gente tem mente que o número de repetições que vai ser usado pelo programa para executar aquelas instruções pode ser que seja indeterminado, mas vai ser um valor finito.
O teu programa tem que finalizar um dia, e isso depende do número de repetições que vão ser executadas durante a execução de um programa.
Então, quando você tem um programa que tem um loop infinito, a gente diz que esse programa está errado, mas desde que seja algo não intencional, porque na verdade, existe a possibilidade de você ter um laço de repetição que ele é infinito, com um loop que vai ser executado indefinidamente, mas isso é algo que é tensional, que o programa doer realmente que isso que aquilo ocorre.
A gente vai ver isso mais para frente em uma próxima videoaula também, mas por enquanto a gente vai se atentar aqui, o número de repetições, tem que ser finito, tem que ser algo que vai terminar em algum momento.
Vamos ver então comando for.
Então comando for tem essa estrutura, eu tenho uma variável aqui que vai ser usada para percorrer uma determinada sequência que a gente está colocando lá na definição do for.
Então, essa variável sequência pode ser um objeto, o tipo string, pode ser uma lista, pode ser um range que eu vou falar mais daqui a pouquinho, ou qualquer outro tipo que possa ser iterado, quer dizer que você tenha vários valores ali dentro, e aí essa iteração significa que você vai percorrer por todos esses elementos que estão dentro ali.
Não supone que você tenha uma lista, ele, por exemplo, que tem os elementos 1, 2 e 3, e aí você tenha sua variável x, se esse x vai ser iterado nesta lista, então inicialmente o x vai receber o valor 1, depois o x vai receber o valor 2, e depois o x vai receber o valor 3.
Então isso significa iterar uma determinada sequência, então a cada execução desse for, a cada repetição o x assume um valor diferente aqui desta lista.
Então valores sucessivos de sequência, que são esses valores que estão aqui, vão ser atribuídos a que é lá variável, que você determinou aqui, e aí você vai executar aquele bloco de código indentado para cada valor dessa variável, tudo bem? Então olha aqui um exemplo, então eu tenho uma lista, ele, composta por 3 strings, camgato e coelho, e eu tenho o meu for, aquele finido, onde a minha variável e ela vai percorrer essa lista, ele.
Então a cada iteração desse for, o i vai estar assumindo o valor de uma dessas strings.
Então para a primeira iteração do for, ele vai imprimir aqui, cam, quer dizer, o i está, tem o valor cam, né, ali dentro, na segunda iteração ele vai imprimir gato, depois na terceira ele vai imprimir com ele.
Então esse for aqui vai ser executado 3 vezes, porque 3 é o tamanho dessa lista, ele que eu defini.
Olha mais um outro exemplo, eu tenho uma string S, chamada de algoritmos, e eu estou fazendo com que uma variável que eu chamei de C, percorra essa string S que eu defini.
Aqui nesse caso, C vai receber, caracter por caracter daquela string, então na primeira iteração, C vai receber o caracter A, na segunda iteração vai receber L na terceira G, e assim por diante.
E o que eu faço aqui embaixo, né, aqui embaixo eu, para cada valor de C, eu verifico, CCC está em uma dessas caracteres que estão aqui.
Então se C for A, O for E, O for I, O for O, O for U, ele impreme esse caracter na tela.
Então aqui é realmente simplesmente verificar se aquele caracter é uma vogal, e se for uma vogal, ele impreme ela na tela.
Então o resultado desse exemplo vai ser a impressão dos caracteres A, O, I e O, que são as vogais da palavra algoritmos.
Um comando range agora, ele tem esse formato, então eu tenho três valores que posso colocar, que é o início, o final e o passo.
Você pode omitir o start, o início, e aí ele vai assumir o valor zero como default, como padrão, e você pode também omitir o estep, e aí ele vai colocar também o valor 1 como padrão.
Então olha esse primeiro exemplo, for X, in range de 10.
Então aqui ele vai imprimir os números de zero até 10.
E aqui é importante ressaltar que esse 10, ele não vai ser em preço, ele vai imprimir até 10, mas excluindo o valor 10.
Neste segundo exemplo, tenho a minha variável I, que vai percorrer de 1 a 20 com o passo 2.
Então ele vai imprimir 1, depois ele vai imprimir 3, depois ele vai imprimir 5, 7, até o número 19.
Tudo bem? Então o passo que é dizer é de quanto enquanto ele é incrementado ali aqueles valores.
E esse último exemplo, eu tenho uma lista, que tem os caracteres ABC, e aqui é uma outra forma, de você imprimir aquele elemento da lista, que é usar o range, e nesse range eu coloco o tamanho da minha lista.
Então lende L vai retornar o valor 3.
Então esse 3 está sendo usado por esse range.
Então na verdade a minha variável I vai esconder os valores zero, 1 e 2.
Tá excluindo 3 também.
E aí esses valores zero, 1 e 2 estão sendo usados aqui como índice do L de I.
Então é uma outra forma de você acessar os elementos de uma lista, e usando o índice aqui nos colchets.
Então ele vai imprimir também o A, depois ele vai imprimir o B, depois ele vai imprimir o C.
Tudo tá certo? A única diferença desse exemplo aqui para aquele outro do slide anterior é que o I é um índice da lista.
Nesse exemplo anterior que está aqui, o I já é o próprio elemento da lista.
Então é importante aqui frisar isso, que existe essa diferença.
A gente tem também uma outra conceito, para relacionado com repetição, que são os acumuladores.
Uma acumulador é uma variável que você usa para agregando somas perciais ao longo de uma repetição.
Então por exemplo supone que eu queira calcular a soma de todos os números pares de 1 até 100.
Como que eu faço isso? Vamos fazer aqui no nosso programa.
Eu vou colocar um laço for com uma variável, eu vou chamar de X agora, e eu vou fazer um range de 1 até 100.
E vamos deixar assim, sem o passo vai ser um simplesmente.
Aqui eu vou verificar, pessoal, se o número X é par ou não.
Com isso eu posso fazer um IIF, X, resto da divisão por 2 é igual a 0, quer dizer, é o número par, eu vou fazer alguma coisa aqui dentro, que é agregar no acumulador o a soma parcial.
Eu vou chamar uma variável de acumulador, que vai ser o próprio valor anterior de acumulador mais X, que é o número par, que eu me certifico aqui em cima, que ele é par.
Portanto, aqui, pessoal, de acumuladores, é a gente sempre inicializar essa variável, porque na primeira iteração, esse valor aqui é desconhecido, e aí a linguagem não vai saber, que é um valor zero que você está usando na primeira iteração.
Então a gente sempre tem que inicializar os nossos acumuladores para dar aí começar a usar aqui embaixo na acumulação, nas suas parciais ali da sua repetição.
Aqui, pessoal, o 100 vai ser excluído, porque o 100 é par, então, aqui, ele excluiu os valor 100, se você quer incluir o 100, aí você pode colocar, por exemplo, até 61, ou 102, e aí o 100 entraria na soma.
Bom, então, aí, já sou a manã imprimir aqui o valor do acumulador, que ele vai imprimir aí 2500 e 50, que é a soma dos números paris de 1 até 100.
Bom, uma outra conceito também de repetição são os lupes aninhados, que é fazer aninhamento de lupes, é você colocar um dentro do outro.
Então, você pode ter um for externo, e dentro desse for você coloca uma outra repetição.
Então, para cada iteração do lup externo, você vai ter uma execução daquele bloco, daquela estrutura de repetição interna.
Vamos ver um exemplo.
Então, supongo que eu tenha uma lista de stringes, como essa, este TR-List, são três nomes, e João Roberto Rafael, eu quero retornar todas as vogais que ocorrem em todos esses elementos acima.
Então, ele vai imprimir o ó, o ó de novo, porque o A, com o 100, assume que isso daqui não é uma vogal, é o padrão da linguagem Python, o A100, a sensação é dita como um caracter especial.
Depois o ó de novo, depois o E, o ó, o A, o ó de novo e o E.
Então, eu quero imprimir aqui essas vogais que estão aqui ao longo de todas esses elementos da lista.
Então, para fazer isso é necessário utilizar lups aninhados, então vamos ver aqui como seria este programa.
Então, eu vou colocar aqui, ó, eu vou tirar este exemplo e vou colocar aqui agora o esse novo exemplo, né? Então, eu vou criar aqui a minha lista de nomes, que vai ser, então, João Roberto e Rafael.
Então, inicialmente, a gente vai percorrer esses nomes, eu vou chamar aqui de nome em STR-List, e aqui vamos comprimir inicialmente o nome.
Então, ele imprimi aqui os três nomes aqui dessa lista.
Mas eu não quero isso, eu quero aqui, para cada nome eu verifique que eu tenho o carácter daquele nome e imprima a vogal, se for vogal, né? Em primeiro o carácter, se for vogal.
Então, para isso, pessoal, eu coloco aqui um for, um novo for, que está dentro do for externo, e que ele vai percorrer aqui o nome.
Então, reparem que esse for aqui ele está dentro desse, porque eu tenho uma indentação, isso aqui é importante.
E aqui dentro eu tenho uma nova indentação, que é isso daqui, que é correspondente a esse segundo for, e aqui eu vou ter um ífi para verificar se o C está na minha lista de vogais.
E aqui também eu tenho uma nova indentação correspondente ao ífi, está bom? E então, se esse C estiver dentro dessas vogais, eu vou imprimir ele aqui na tela.
Então, está bom? Vamos lá.
Então, está aqui, ele imprimiu o, depois ó de novo, ó de novo e a a e.
Então, isso aqui é importante, pessoal, para cada nome eu tenho a execução aqui desse for.
Então, para cada interação desse for externo, eu tenho toda a execução, toda a execução aqui desse bloco que está dentro do for.
E você pode ter quantos for, quantos loops você quiser enanhar, dos um dentro do outro.
Então, você pode ter um for, depois dentro, tem outro for, depois dentro, tem mais um outro for.
Então, não tem limite aí para esse aninhamento de loops.
Muito bem, então, essa aí foi a nossa videoaula sobre comando for, né, estruturas de repetição.
E a gente vai continuar em desse assunto na próxima videoaula.
Então, até lá e obrigada.