Para loops em Python: tudo o que você precisa saber

Publicados: 2022-08-18

Este 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

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

para construções de loop

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() e enumerate() .

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 incluindo stop .

 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
python-for-loop

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

Loop através de matrizes usando for Loop

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

Linha de comando

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
python-for-loop-command-line-args

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

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?

Infinito para Loop

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 de x , 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 do callable-object seja igual a sentinel .

Você vê por que podemos ter um loop infinito neste caso?

python-for-infinite-loop

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-for-loop-infinito

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.

Experimente os exemplos

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.