Para loops em Python: tudo o que você precisa saber
Publicados: 2022-08-18Este tutorial ensinará tudo sobre como usar loops for em Python com exemplos de código.
Na programação, os loops ajudam a repetir um conjunto específico de instruções. Você usará loops for para iterações definidas quando:
- você sabe que estará trabalhando com uma sequência com um número finito de elementos
- você vê o número de repetições de antemão
Este tutorial ensinará tudo sobre como trabalhar com loops for em Python. Você começará aprendendo a sintaxe e as iterações simples usando um loop for. Em seguida, você aprenderá a processar argumentos de linha de comando, usar instruções de controle de loop e muito mais.
Vamos começar…
Sintaxe do Python para Loop

A sintaxe genérica para usar o loop for em Python é a seguinte:
for item in iterable: # do something on item statement_1 statement_2 . . . statement_n
Na sintaxe acima:
- item é a variável de loop.
- iterable denota qualquer iterável do Python, como listas, tuplas e strings.
- statement_1 até statement_n denotam as instruções no corpo do loop.
Nota : Certifique-se de adicionar dois pontos ( :
) após o nome do iterável e recuar todas as instruções no corpo do loop com quatro espaços.
Comum para construções de loop em Python

Ao usar um loop for :
- Você pode acessar os itens diretamente usando a sintaxe discutida na seção anterior.
- Você pode usar o loop for em conjunto com funções internas do Python, como
range()
eenumerate()
.
Vamos cobri-los nesta seção.
Usando for Loop para acessar elementos
Para melhorar a legibilidade, você deve escolher uma variável de loop indicativa do que a lista contém. Por exemplo, no exemplo abaixo, nums
é uma lista de números que usamos num
como a variável de loop. Observe como for num in nums:
é intuitivo e fácil de ler.
nums = [4,5,9,1,3] for num in nums: print(num) # Output 4 5 9 1 3
Adicionando mais alguns exemplos, você pode usar for fruit in fruits:
e for student in students:
ao percorrer fruits
e lista de students
, respectivamente.
Usando for Loop com a função range()
Quando você deseja acessar um item de lista através de seu índice, você pode usar a função range()
.
Em Python,
range(start, stop, step)
retorna um objeto range, que você pode percorrer para obter os índices:start
,start + step
e assim por diante, até mas não incluindostop
.
for i in range(len(nums)): print(nums[i]) # Output 4 5 9 1 3
Você também pode usar a função range()
para gerar uma sequência de números para percorrer. No exemplo abaixo, definimos o parâmetro step
opcional para 2. Assim, obtemos números de 10 até, mas não incluindo 20, em etapas de 2.
for i in range(10,20,2): print(i) # Output 10 12 14 16 18
Usando for Loop com a função enumerate()
Quando você deseja percorrer um iterável e acessar os itens e seus índices simultaneamente, você pode usar a função enumerate().
Aqui está um exemplo.
for idx, num in enumerate(nums): print(f"{idx}:{num}") # Output 0:4 1:5 2:9 3:1 4:3

Como ler itens de listas usando for Loop em Python
Para percorrer as listas do Python usando o loop for, você pode usar a sintaxe genérica da seção anterior.
No exemplo abaixo, nums
é iterável e num é a variável de loop.
nums = [4,5,9,1,3] for num in nums: print(f"{num} times 3 is {num*3}") # action on each num # Output 4 times 3 is 12 5 times 3 is 15 9 times 3 is 27 1 times 3 is 3 3 times 3 is 9
Como fazer um loop através de strings usando for Loop em Python
As strings do Python são iteráveis e você pode executar loops, indexação, fatiamento e muito mais.
Nota : O Python não possui um tipo de dados de caractere integrado. Assim, você pode tratar um caractere como uma string de comprimento um.
my_string = "Code" for char in my_string: print(char) # Output C o d e
Como fazer um loop através de matrizes usando for Loop em Python

Você pode percorrer arrays usando loops e aninhar loops.
No trecho de código abaixo, array1 é uma lista aninhada contendo listas menores como seus elementos. Portanto, percorrer array1 fornece cada linha, conforme mostrado abaixo.
array1 = [[2,3],[7,8]] for row in array1: print(row) # Output [2, 3] [7, 8]
Para acessar elementos individuais em cada linha, você pode usar outro loop for
.
array1 = [[2,3],[7,8]] for row in array1: for elt in row: print(elt)
Na célula de código acima:
- O loop for externo ajuda você a indexar nas linhas.
- O loop for interno permite que você toque nos elementos em cada linha.
Aqui está a saída correspondente.
Output 2 3 7 8
Como ler argumentos de linha de comando usando for Loop

Como desenvolvedor, você deve se sentir confortável executando scripts Python a partir da linha de comando e usando argumentos de linha de comando para interagir com seu script.
Você pode usar os módulos internos do Python, como sys e argparse, para analisar e ler argumentos de linha de comando.
Nesta seção, veremos como usar o módulo sys
e usar um loop for
— para percorrer a lista de argumentos de linha de comando.
No módulo sys, sys.argv
é a lista de argumentos de linha de comando que você passa. Assim, você pode fazer um loop em sys.argv
da mesma forma que faria em qualquer lista Python.
# main.py import sys for arg in sys.argv: print(arg)
Agora você pode executar o programa a partir da linha de comando, conforme mostrado abaixo.
$ python main.py Hello Python3 main.py Hello Python3
Por padrão, o nome do módulo é o primeiro argumento e está no índice zero em sys.argv
.
Se você quiser acessar os índices e os argumentos correspondentes, você pode usar a função range()
.
# main.py import sys for i in range(len(sys.argv)): print(f"arg{i} is {sys.argv[i]}")
️ Em seguida, execute novamente main.py.
$ python main.py Hello Python3 arg0 is main.py arg1 is Hello arg2 is Python3
Suponha que você queira analisar e processar os argumentos além do nome do módulo. Você pode definir o valor inicial como 1, como na célula de código abaixo.

# main.py import sys for i in range(1,len(sys.argv)): print(f"arg{i} is {sys.argv[i]}")
$ python main.py Hello Python3 arg1 is Hello arg2 is Python3

Juntando tudo, o arquivo main.py contém o código a seguir.
# main.py import sys print("\nPrinting all command-line arguments...") for arg in sys.argv: print(arg) print("\nPrinting all command-line arguments with index...") for i in range(len(sys.argv)): print(f"arg{i} is {sys.argv[i]}") print("\nPrinting command-line arguments except arg0: module_name...") for i in range(1,len(sys.argv)): print(f"arg{i} is {sys.argv[i]}")
Aqui está a saída quando você executa o módulo.
$ python main.py Hello Python3 Printing all command-line arguments... main.py Hello Python3 Printing all command-line arguments with index... arg0 is main.py arg1 is Hello arg2 is Python3 Printing command-line arguments except arg0: module_name... arg1 is Hello arg2 is Python3
Como usar a instrução break Inside for Loop

Como outras linguagens de programação, o Python também suporta o uso de instruções de controle de loop break
e continue
. Essas instruções podem ajudar a alterar o fluxo de controle em loops, com base em algumas condições. Vamos ver como usá-los dentro de um loop for.
A instrução break
the pode ser usada para sair de um loop quando uma condição específica for True
.
Queremos escrever um programa para fazer o seguinte:
- Fixe
k
, o número de entradas. - Use um loop
for
para ler as entradas do usuário - um dígito por vez e somar os números não negativos (maior ou igual a zero). - Esse processo deve continuar enquanto o usuário inserir números não negativos.
- Quando o usuário inserir um número negativo, saia do loop e imprima a soma.
Aqui está o código que executa a tarefa acima.
k= 5 sum = 0 for i in range(k): num = int(input("\nEnter a number: ")) if num<0: break # exit loop when num < 0 sum += num print(sum)
Se o usuário digitar um número menor que zero, o controle sairá do loop for para a primeira instrução após o loop.
Enter a number: 2 Enter a number: 3 Enter a number: 5 Enter a number: -1 10
Como usar a instrução continue Inside for Loop
A instrução continue
pode ser usada para pular certas iterações dependendo de uma condição específica.
Vamos usar os mesmos exemplos da seção anterior.
- Leia a entrada do usuário e calcule a soma dos números não negativos.
- Se o usuário inserir um número negativo, pule essa iteração, prossiga para a próxima iteração e leia o próximo número.
k = 5 sum = 0 for i in range(k): num = int(input("\nEnter a number: ")) if num<0: continue sum += num print(sum)
Aqui está um exemplo de saída.
Enter a number: 2 Enter a number: 3 Enter a number: 5 Enter a number: -1 Enter a number: 3 13
O quarto número é -1, que é negativo. No entanto, desta vez o loop for continua até atingirmos o número especificado de entradas e ignora as entradas negativas. Essencialmente, ele retorna a soma de todos os números não negativos dos k números de entrada.
Você pode encontrar um loop infinito em Python?

Em todos os exemplos e casos de uso que discutimos até agora, nunca nos deparamos com o problema de um loop for infinito. Mas podemos ter um loop infinito em Python?
Considere a seguinte função double()
.
def double(x = 1): return x*2
- Quando você chama a função
double()
sem especificar o valor dex
, o valor padrão de 1 é usado. - Quando você especifica um valor para
x
na chamada de função, esse valor é usado.
double() # Returns: 2 double(20) # Returns: 40
Em Python, a função iter() retorna um objeto iterador. Você pode usar next(iter-obj)
para percorrer a sequência e acessar os itens subsequentes.
– Considere um objeto que pode ser chamado e um valor, sentinela .
–
iter(callable-object, sentinel)
pode ser usado para realizar a iteração até que o valor de retorno docallable-object
seja igual asentinel
.
Você vê por que podemos ter um loop infinito neste caso?

Bem, você tem um callable-object
que pode ser chamado e um valor sentinel
. Se o valor de retorno do callable nunca for igual ao do sentinela, o loop continuará para sempre!
Vamos usar a função acima double
como callable e definir o valor do sentinela como 0.
Nota : Mencione o nome da função double
, não a função call double()
.
Como o valor de retorno da função double
é sempre 2 e nunca igual a 0, temos um loop infinito!
️ Tente executar a seguinte célula de código. É infinito para loop, e você terá que forçar a parada do programa.
for _ in iter(double,0): print("Running...")

Python para loops: questões práticas
#1 . Use o loop for para imprimir todos os números pares no intervalo de 0 a 20.
Dica : Use a função range()
com o valor de step
correto.
#2 . Imprima todos os números pares de 20 a 0.
Dica : Use um valor negativo para o parâmetro step
na função range()
.
#3 . Crie uma matriz NumPy tridimensional.
Dica : Use for loop e aninhado for loops conforme necessário para acessar as linhas e entradas individuais na matriz.
Empacotando
Aqui está um resumo do que você aprendeu neste tutorial.
- A sintaxe para usar o loop for do Python junto com as funções range() e enumerate()
- Usando loops for para percorrer listas, arrays e strings e ler argumentos de linha de comando
- Usando instruções de controle de loop: break para sair do loop e continue para pular certas iterações - com base nas condições - dentro de loops for
- Entendendo a possibilidade de loops infinitos em Python
Em seguida, aprenda a usar o método split() em Python.