Loop for em Python

O loop for em Python é uma função de iteração. Se você tiver um objeto de sequência como uma lista, você pode usar o loop for para iterar sobre os itens contidos dentro da lista.

A funcionalidade do loop for não é muito diferente do que você vê em várias outras linguagens de programação.

Neste artigo, exploraremos o loop for em Python em detalhes e aprenderemos a iterar sobre diferentes sequências, incluindo listas, tuplas e mais. Além disso, aprenderemos a controlar o fluxo do loop usando as declarações break e continue.

Quando usar o loop for

Sempre que você precisar repetir um bloco de código uma quantidade fixa de vezes. Se você não souber quantas vezes ele deve ser repetido, use uma declaração “while loop” em vez disso.

Sintaxe do loop for em Python

A sintaxe básica do loop for em Python se parece com algo semelhante ao mencionado abaixo.

for itarator_variable in sequence_name:
	Statements
	. . .
	Statements

Sintaxe detalhada do loop for em Python

  • A primeira palavra da declaração começa com a palavra-chave “for”, que significa o início do loop for.
  • Em seguida, temos a variável iteradora, que itera sobre a sequência e pode ser usada dentro do loop para executar várias funções.
  • O próximo é a palavra-chave “in” em Python, que indica à variável iteradora para iterar sobre elementos dentro da sequência.
  • E, finalmente, temos a variável de sequência, que pode ser uma lista, uma tupla ou qualquer outro tipo de iterador.
  • A parte das declarações do loop é onde você pode manipular a variável iteradora e executar várias funções.

String em Python é uma sequência de caracteres. Se dentro de suas aplicações de programação, você precisar percorrer os caracteres de uma string individualmente, você pode usar o loop for aqui.

Aqui está como isso funcionaria para você.

word="anaconda"
for letter in word:
	print (letter)

Saída:

a
n
a
c
o
n
d
a

O motivo pelo qual este loop funciona é porque o Python considera uma “string” como uma sequência de caracteres em vez de olhar para a string como um todo.

Usando o loop for para iterar sobre uma lista ou tupla Python

Listas e Tuplas são objetos iteráveis. Vamos ver como podemos iterar sobre os elementos dentro desses objetos agora.

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
	print (word)

Saída:

Apple
Banana
Car
Dolphin

Agora, vamos avançar e trabalhar na iteração sobre os elementos de uma tupla aqui.

nums = (1, 2, 3, 4)

sum_nums = 0

for num in nums:
    sum_nums = sum_nums + num

print(f'Sum of numbers is {sum_nums}')

# Saída
# Soma dos números é 10

Aninhando loops for em Python

Quando temos um loop for dentro de outro loop for, isso é chamado de loop for aninhado. Existem múltiplas aplicações de um loop for aninhado.

Considere o exemplo da lista acima. O loop for imprime palavras individuais da lista. Mas e se quisermos imprimir os caracteres individuais de cada uma das palavras dentro da lista?

Aqui é onde um loop for aninhado funciona melhor. O primeiro loop (loop pai) passará pelas palavras uma a uma. O segundo loop (loop filho) passará pelos caracteres de cada uma das palavras.

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
        # Este loop está obtendo a palavra da lista
        print ("The following lines will print each letters of "+word)
        for letter in word:
                # Este loop está obtendo a letra para a palavra
                print (letter)
        print("") # Este print é usado para imprimir uma linha em branco

Saída

A nested loop is structurally similar to nested if statements

Loop for do Python com a função range()

O intervalo do Python é uma das funções integradas. Quando você deseja que o loop for execute um número específico de vezes, ou precisa especificar um intervalo de objetos para imprimir, a função range funciona muito bem.

Ao trabalhar com range(), você pode passar entre 1 e 3 argumentos inteiros para ele:

  • start declara o valor inteiro no qual a sequência começa, se isso não estiver incluído, então start começa em 0
  • stop é sempre necessário e é o inteiro até o qual é contado, mas não incluído
  • step define quanto aumentar (ou diminuir no caso de números negativos) na próxima iteração, se isso for omitido, então step é padrão para 1

Considere o seguinte exemplo onde quero imprimir os números 1, 2 e 3:

for x in range(3):
    print("Printing:", x)
	
# Saída

# Imprimindo: 0
# Imprimindo: 1
# Imprimindo: 2

A função range também aceita outro parâmetro além do início e do fim. Este é o parâmetro step. Ele diz à função range quantos números pular entre cada contagem.

No exemplo abaixo, usei o número 3 como o passo e você pode ver que os números de saída são o número anterior + 3.

for n in range(1, 10, 3):
    print("Printing with step:", n)
	
# Saída

# Imprimindo com passo: 1
# Imprimindo com passo: 4
# Imprimindo com passo: 7

Também podemos usar um valor negativo para nosso argumento step para iterar para trás, mas teremos que ajustar nossos argumentos start e stop de acordo:

for i in range(100,0,-10):
   print(i)

Aqui, 100 é o valor de start, 0 é o valor de stop, e -10 é o range, então o loop começa em 100 e termina em 0, diminuindo 10 a cada iteração. Isso ocorre na saída:

Output
100 90 80 70 60 50 40 30 20 10

Ao programar em Python, os loops for frequentemente fazem uso do tipo de sequência range() como seus parâmetros para iteração.

A declaração break com o loop for

A declaração break é usada para sair prematuramente do loop for. É usada para interromper o loop for quando uma condição específica é atendida.

Vamos supor que temos uma lista de números e queremos verificar se um número está presente ou não. Podemos iterar sobre a lista de números e se o número for encontrado, sair do loop porque não precisamos continuar iterando sobre os elementos restantes.

Nesse caso, vamos usar a condição if else do Python juntamente com nosso loop for.

nums = [1, 2, 3, 4, 5, 6]

n = 2

found = False
for num in nums:
    if n == num:
        found = True
        break

print(f'List contains {n}: {found}')

# Saída
# Lista contém 2: True

A declaração continue com o loop for

Podemos usar declarações continue dentro de um loop for para pular a execução do corpo do loop for para uma condição específica.

Vamos supor que tenhamos uma lista de números e queremos imprimir a soma dos números positivos. Podemos usar as declarações continue para pular o loop for para números negativos.

nums = [1, 2, -3, 4, -5, 6]

sum_positives = 0

for num in nums:
    if num < 0:
        continue
    sum_positives += num

print(f'Sum of Positive Numbers: {sum_positives}')

Loop for do Python com um bloco else

Podemos usar um bloco else com um loop for do Python. O bloco else é executado apenas quando o loop for não é terminado por uma declaração break.

Vamos supor que tenhamos uma função para imprimir a soma dos números se e somente se todos os números forem pares.

Podemos usar a declaração break para terminar o loop for se um número ímpar estiver presente. Podemos imprimir a soma na parte else para que seja impressa apenas quando o loop for executado normalmente.

def print_sum_even_nums(even_nums):
    total = 0

    for x in even_nums:
        if x % 2 != 0:
            break

        total += x
    else:
        print("For loop executed normally")
        print(f'Sum of numbers {total}')


# isso imprimirá a soma
print_sum_even_nums([2, 4, 6, 8])

# isso não imprimirá a soma por causa de um número ímpar na sequência
print_sum_even_nums([2, 4, 5, 8])

# Saída

# Loop for executado normalmente
# Soma dos números 20

Loops For usando Tipos de Dados Sequenciais

Listas e outros tipos de sequência de dados também podem ser utilizados como parâmetros de iteração em for loops. Em vez de iterar através de um range(), você pode definir uma lista e iterar através dela.

Vamos atribuir uma lista a uma variável e, em seguida, iterar através da lista:

sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']

for shark in sharks:
   print(shark)

Neste caso, estamos imprimindo cada item na lista. Embora tenhamos usado a variável shark, poderíamos ter chamado a variável de qualquer outro nome de variável válido e obteríamos a mesma saída:

Output
hammerhead great white dogfish frilled bullhead requiem

A saída acima mostra que o for loop iterou pela lista e imprimiu cada item da lista por linha.

Listas e outros tipos de dados baseados em sequência como strings e tuplas são comuns de serem usados com loops porque são iteráveis. Você pode combinar esses tipos de dados com range() para adicionar itens a uma lista, por exemplo:

sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']

for item in range(len(sharks)):
   sharks.append('shark')

print(sharks)
Output
['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark']

Aqui, adicionamos uma string de espaço reservado 'shark' para cada item do comprimento da lista sharks.

Você também pode usar um for loop para construir uma lista do zero:

integers = []

for i in range(10):
   integers.append(i)

print(integers)

Neste exemplo, a lista integers é inicializada vazia, mas o loop for popula a lista assim:

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

Da mesma forma, podemos iterar através de strings:

sammy = 'Sammy'

for letter in sammy:
   print(letter)
Output
S a m m y

A iteração através de tuplas é feita no mesmo formato que a iteração através de listas ou strings acima.

Ao iterar através de um dicionário, é importante ter em mente a estrutura chave : valor para garantir que você está chamando o elemento correto do dicionário. Aqui está um exemplo que chama tanto a chave quanto o valor:

sammy_shark = {'name': 'Sammy', 'animal': 'shark', 'color': 'blue', 'location': 'ocean'}

for key in sammy_shark:
   print(key + ': ' + sammy_shark[key])
Output
name: Sammy animal: shark location: ocean color: blue

Ao usar dicionários com for loops, a variável de iteração corresponde às chaves do dicionário, e dictionary_variable[iterating_variable] corresponde aos valores. No caso acima, a variável de iteração key foi usada para representar a chave, e sammy_shark[key] foi usada para representar os valores.

Os loops são frequentemente usados para iterar e manipular tipos de dados sequenciais.

Conclusão

O loop for em Python é muito semelhante a outras linguagens de programação. Podemos usar as declarações break e continue com o loop for para alterar a execução. No entanto, em Python, também podemos ter um bloco else opcional no loop for.

I hope you have gained some interesting ideas from the tutorial above. If you have any questions, let us know in the comments below.

A partir daqui, você pode continuar aprendendo sobre loops lendo tutoriais sobre while loops e instruções break, continue e pass.

Para trabalhar com for loops em projetos, siga os seguintes tutoriais:

Source:
https://www.digitalocean.com/community/tutorials/how-to-construct-for-loops-in-python-3