Loops e Ranges em Python

PythonBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como usar as instruções de loop for e a função range() em Python. As instruções de loop for permitem iterar sobre uma sequência de elementos, como uma lista ou uma string. A função range() é uma função embutida que retorna uma sequência de números, começando por 0 por padrão, incrementando por 1 (também por padrão) e terminando em um número especificado.

Conquistas

  • Instruções de loop For (For loop Statements)
  • A função range()
  • A função enumerate()
  • A função zip()

Loop for

Um loop for é uma instrução de controle de fluxo que permite iterar sobre uma sequência de elementos. A sintaxe para um loop for é a seguinte:

for variable in sequence:
    statements

Onde sequence é uma sequência de elementos (como uma lista, tupla ou string) e variable é uma variável que assume cada valor na sequência, um de cada vez. As statements dentro do loop serão executadas para cada valor na sequência.

Abra um novo interpretador Python.

python3

Aqui está um exemplo de um loop for simples que itera sobre uma lista de inteiros e imprime cada valor:

numbers = [1, 2, 3, 4, 5]
for number in numbers:
    print(number)

Iterando sobre uma string:

for char in 'Hello':
    print(char)

A Função Range()

A função range() é uma função embutida em Python que retorna uma sequência de números. A sintaxe para a função range() é a seguinte:

range(start, stop, step)

Onde start é o número inicial da sequência (o padrão é 0), stop é o número final da sequência (não incluído) e step é o incremento entre cada número na sequência (o padrão é 1).

Você pode usar a função range() em um loop for para iterar sobre uma sequência de números. Por exemplo:

for i in range(5):
    print(i)

Você também pode especificar um valor start e stop para a função range():

for i in range(2, 5):
    print(i)

Você pode até mesmo especificar um valor de passo (step):

for i in range(2, 10, 2):
    print(i)

Loops for Aninhados

Você também pode usar múltiplos loops for para iterar sobre sequências aninhadas. Por exemplo:

for i in range(1, 3):
    for j in range(1, 4):
        print(f'i: {i}, j: {j}')

Exercício

Agora é sua vez de praticar o uso de instruções de loop for e da função range(). Escreva um programa que imprima o seguinte padrão:

*
**
***
****
*****

Algumas dicas:

Seu programa deve usar dois loops for, um aninhado dentro do outro. O loop externo deve iterar sobre o número de linhas, e o loop interno deve iterar sobre o número de colunas.

Para completar este exercício, você precisará usar a função print() para imprimir os asteriscos. Você pode usar a função range() para controlar o número de iterações para os loops.

A Função Enumerate()

A função enumerate recebe um iterável como entrada, como uma lista, e retorna um iterador que gera tuplas contendo o index (índice) e o value (valor) de cada elemento. No exemplo abaixo, usamos o operador de desempacotamento (index, fruit) para atribuir o índice e o valor de cada tupla às variáveis index e fruit, respectivamente.

## Exemplo de uso da função enumerate em um loop for em Python

## Lista de amostra para iterar
fruits = ['apple', 'banana', 'cherry']

## Usando um loop for e a função enumerate para iterar sobre a lista
for index, fruit in enumerate(fruits):
    print(f"Index: {index}, Fruit: {fruit}")

## Output:
## Index: 0, Fruit: apple
## Index: 1, Fruit: banana
## Index: 2, Fruit: cherry

No exemplo acima, definimos uma lista fruits contendo os elementos apple, banana e cherry.

Em seguida, usamos um loop for para iterar sobre a lista de fruits e a função enumerate para obter tanto o índice quanto o valor de cada elemento na lista. Dentro do loop, usamos a formatação de string para imprimir o index e o fruit. A função enumerate por padrão começa a contar de 0, mas você pode usar o argumento opcional start para especificar um ponto de partida diferente para a contagem.

A Função Zip()

A função zip() pode ser útil ao trabalhar com múltiplas listas ou outros objetos iteráveis e você deseja iterar sobre seus elementos em pares, ou quando você deseja combinar múltiplos objetos iteráveis em um só.

## Exemplo de uso da função zip() em um loop for em Python

## Listas de amostra para iterar
fruits = ['apple', 'banana', 'cherry']
prices = [1.2, 3.5, 2.5]

## Usando um loop for e a função zip para iterar sobre as listas
for fruit, price in zip(fruits, prices):
    print(f"Fruit: {fruit}, Price: ${price}")

## Output:
## Fruit: apple, Price: $1.2
## Fruit: banana, Price: $3.5
## Fruit: cherry, Price: $2.5

No exemplo acima, definimos duas listas fruits e prices contendo os elementos apple, banana, cherry e 1.2, 3.5, 2.5 respectivamente.

Em seguida, usamos um loop for para iterar sobre os elementos das duas listas usando a função zip(). A função zip() recebe múltiplos objetos iteráveis como entrada e retorna um iterador que gera tuplas contendo os elementos dos iteráveis de entrada nas posições correspondentes. No exemplo acima, usamos o operador de desempacotamento (fruit, price) para atribuir os elementos de cada tupla às variáveis fruit e price, respectivamente. Dentro do loop, usamos a formatação de string para imprimir a fruta e o preço.

Se o comprimento dos iteráveis de entrada não for igual, a função zip() irá parar no final do iterável mais curto.

Resumo

Neste laboratório, você aprendeu como usar as declarações de loop for do Python e a função range() para iterar sobre uma sequência de elementos. Você aprendeu a sintaxe para loops for e a função range(), e viu exemplos de como usá-los para iterar sobre listas, strings, tuplas e sequências de números. Você também aprendeu como usar loops for aninhados para iterar sobre sequências aninhadas.

Agora que você aprendeu os fundamentos dos loops for e da função range(), você pode usar essas ferramentas para realizar tarefas como processamento de dados, geração de saídas e muito mais.