Loop For em Python

O loop for em Python é uma função de iteração. Se você tem 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, vamos explorar o loop for em Python em detalhes e aprender a iterar sobre diferentes sequências, incluindo listas, tuplas e mais. Além disso, vamos aprender a controlar o fluxo do loop usando as instruções break e continue.

Quando usar o loop for

Sempre que precisar repetir um bloco de código um número fixo de vezes. Se você não souber quantas vezes ele deve ser repetido, use uma instruçã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 do loop for em Python em Detalhes

  • 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 do iterador 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 do iterador 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 do iterador e executar várias funções

String em Python é uma sequência de caracteres. Se em qualquer uma 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

A razão pela 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 em iterar 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 várias 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 que um loop for aninhado funciona melhor. O primeiro loop (loop pai) passará pelas palavras uma por uma. O segundo loop (loop filho) percorrerá os caracteres de cada uma das palavras.

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

Output

A nested loop is structurally similar to nested if statements

Python for loop com a função range()

O range do Python é uma das funções integradas. Quando você deseja que o loop for seja executado por 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 indica 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 é 1

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

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

# Impressão: 0
# Impressão: 1
# Impressão: 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 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

# Impressão com passo: 1
# Impressão com passo: 4
# Impressão 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 start, 0 é o valor 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, usaremos 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: Verdadeiro

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 temos uma lista de números e queremos imprimir a soma dos números positivos. Podemos usar as declarações continue para pular o laço 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}')

Laço for em Python com um bloco else

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

Vamos supor que temos 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 encerrar o laço for se um número ímpar estiver presente. Podemos imprimir a soma na parte else para que seja impressa apenas quando o laço 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

# O laço for foi executado normalmente
# Soma dos números 20

Laços 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 laços for. Em vez de iterar por meio de um range(), você pode definir uma lista e iterar por essa lista.

Vamos atribuir uma lista a uma variável e, em seguida, iterar por essa lista:

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

for shark in sharks:
   print(shark)

Neste caso, estamos imprimindo cada item da 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 laço for 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 usar com laços 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 marcador de posição 'shark' para cada item do comprimento da lista sharks.

Você também pode usar um laço for 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 de tuplas é feita no mesmo formato que a iteração 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 loops for, 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 instruçõ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 em um 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 looping lendo tutoriais sobre while loops e declarações de 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