For python: estrutura de repetição
INTRODUÇÃO:
Em Python e em diversas outras linguagens de programação, faz-se necessário em muitos cenários a repetição de um trecho de código em um determinado número de vezes. Para isso, existem estruturas embutidas na linguagem Python que nos permitem realizar estas repetições em um número de iterações conhecido previamente ou determinado através de uma lógica.
As estruturas de repetição também são conhecidas como loops, e em Python podemos trabalhar com diversos loops, um deles sendo o for.
Utilizamos o for quando conhecemos o número exato de vezes que nosso bloco de código deve ser executado, ou quando queremos percorrer um objeto iterável.
No loop for, a indicação do término do laço pode ocorrer de duas formas: através de um número que delimita o seu término ou por meio de uma lista de dados que foi completamente verificada.
FLUXOGRAMA DE FUNCIONAMENTO DO FOR:
Fonte: Autoral
Com base neste fluxograma, temos que em Python, o loop for é iniciado através da inicialização da variável de controle, que irá percorrer uma sequência ou intervalo especificado. A condição de continuação irá verificar se a variável está dentro dos limites especificados. Se for verdadeiro (True), o bloco de código irá ser executado, e a variável de controle será atualizada. O bloco de código será executado até que a condição não seja mais atendida pela variável (False), assim o loop se encerra.
SINTAXE DO LOOP FOR:
A sintaxe básica do loop for é:
for variavel in range(inicializacao, condicao, atualizacao):
# Bloco de código que será repetido a cada iteração
O for também pode ser utilizado com um bloco else. Este bloco será executado se o loop for encerrado sem uma instrução break. A sintaxe é semelhante à do bloco for, com a adição apenas do else e sua instrução:
for variavel in range(inicializacao, condicao, atualizacao):
# Bloco de código que será repetido a cada iteração
else:
# Bloco de código ao ser executado caso o loop seja finalizado sem interrupções
VANTAGENS E DESVANTAGENS DA UTILIZAÇÃO DO FOR:
O loop for tem alta legibilidade, o que torna o código mais fácil de entender. Ele também possui alta adaptabilidade a sequências, como listas, strings e tuplas, o que simplifica a iteração dessas estruturas. Além disso, a atualização automática do valor da variável de controle evita erros associados à manipulação manual.
Com base na notação Big O, para um loop for simples em Python, que itera sobre uma sequência de tamanho 'n', a complexidade de tempo de execução do algoritmo é representada por O(n), onde 'n' é o tamanho da entrada. Por este motivo, essa estrutura de repetição apresenta uma vantagem quando comparada com estruturas mais complexas, que podem apresentar tempo de execução O(n^2) ou O(2^n)
Apesar disso, o for apresenta limitações: apesar de ser ótimo para iteração sobre sequências, ele possui baixa eficiência em estruturas mais complexas ou que envolvam estruturas de dados personalizados.
ESTRUTURA FOR ANINHADO:
Ao aninhar loops for podemos iterar sobre elementos de diferentes dimensões ou realizar combinações de elementos em sequências aninhadas.
A complexidade de tempo destas estrutruas aninhadas irá depender do número total de iterações, e, em alguns casos, isso pode resultar em complexidades O(n^2) ou superiores.
Exemplo:
for variavel1 in range(n): # Loop externo
for variavel2 in range(n): # Loop interno
print(f'({variavel1}, {variavel2}')
Este código imprime as combinações de valores para 'variavel1' e 'variavel2'
EXEMPLOS DE CÓDIGO:
- Iterando sobre uma lista:
Esse loop itera sobre a lista 'alunos' e imprime cada aluno da lista.
alunos = ["Alice", "Bernardo", "Luiza", "Mateus"]
for aluno in alunos:
print(aluno)
- Utilização da função range:
Esse loop itera de 0 a 9, não incluindo o 10, e imprime os valores.
for i in range(10):
print(i)
- For aninhado:
Esse exemplo mostra um for aninhado, onde a variável 'i' itera de 0 a 9, não incluindo o 10, e a variável 'j' itera de 0 a 4, não incluindo o 5. Na saída, teremos a impressão de todas as combinações de 'i' e 'j'
for i in range(10):
for j in range(5):
print(f'({i},{j}')
- Iteração sobre Strings:
Esse loop itera sobre cada caractere da string definida na variável 'texto' e imprime cada caractere.
texto = "Loops em Python"
for letra in texto:
print(letra)
- Estrutura For-Else:
Neste exemplo, o loop for itera sobre os valores de 0 a 2 e imprime cada valor. Em seguida, o bloco do else é executado e imprime a string "O loop foi concluído sem a utilização de break para interrupção"
for i in range(3):
print(i)
else:
print("O loop foi concluído sem a utilização do break para interrupção")
CONSIDERAÇÕES FINAIS:
O loop for é muito utilizado em Python por ser a maneira mais simples para iterar sobre sequências. Essa estrutura de repetição possui diversos métodos, que podem ser encontrados em sua documentação:
https://docs.python.org/3/tutorial/controlflow.html#for-statements
Imagem de capa: https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/01/07093212/PYTHON.png