Mandar um café pro programador

Pode me ajudar a transformar cafeína em código?

Listas e o Laço For

Neste tutorial de nosso Curso de Python, vamos ver um uso bem especial do laço for: com as listas!

Veja também:
Curso Python Progressivo em PDF
Certificado do Curso para trabalhar como desenvolvedor Python

O Laço FOR com Listas em Python


Duas coisas que se casam e trabalham incrivelmente bem são: listas e laço for.
Usaremos o laço for para iterar a lista, ou seja, acessar item por item.

Mas, vamos ver com exemplos!

Exemplo 1 de laço FOR com Listas

Faça um script que cria uma lista de 10 elementos, preenchendo eles de 0 até 9, usando laço for.
Depois, printe essa lista.

Inicialmente, criamos nossa lista numeros.
No começo ela está vazia.

Vamos usar um iterador, uma variável count que vai de 0 até 9, através da função range.
Lembramos que count é um número, para concatenar ele, precisamos transformá-lo antes num lista: [count]

A cada looping do laço for, concatenamos nosso número na lista, veja:

numeros = []

for count in range(10):
    numeros += [count]

print(numeros)



Exemplo 2 de laço FOR e Listas 

No exemplo anterior, foi exibida uma lista no seguinte formato:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Use o laço for para exibir ela sem colchetes e vírgulas um número por linha.

Agora, ao invés de percorremos os elementos da função range (que retorna algo a uma lista), vamos usar nossa própria lista numeros.

Ou seja, o count vai iterar, assumir o valor de cada item da lista, um por um, e imprimimos essa variável:
numeros = []

for count in range(10):
    numeros += [count]

for count in numeros:
    print(count)




Exemplo 3 de laço FOR e Listas 

Faça com que o script anterior também calcule a soma de todos os elementos na lista numeros e exiba seu resultado.

Vamos armazenar o valor numa variável chamada soma, que inicializamos como 0.
A cada iteração, somamos o valor de count a ela, como o count vai receber o valor de cada item da lista, teremos a soma de todos os termos da lista:

numeros = []

for count in range(10):
    numeros += [count]

soma=0
for count in numeros:
    print(count)
    soma += count

print("Soma: ", soma)


Note que nem precisamos de um novo laço for, usamos o laço que imprime cada item, um por linha.

Exemplo 4 de laço FOR e Listas 

Faça um script que exibe uma lista de 10 elementos, contados de 1 até 10.
Depois, dobre cada valor dessa lista e exiba. Veja que agora são todos pares.

Preenchemos a lista com valores de 1 até 10, usando range(1,11).
Depois, temos que ir em termo por termo, do índice 0 até o índice 9, para dobrar os valores ali contidos.

Para acessar todos os elementos, vamos usar uma range que vai de 0 até ... o tamanho da lista, que é len(numeros).

numeros = []

for count in range(1,11):
    numeros += [count]

for count in range(len(numeros)):
    numeros[count] = numeros[count]*2
    
for count in numeros:
    print(count)

Poderíamos ter feito apenas: numeros[count] *= 2

Exemplo 5 de laço FOR e Listas 

Faça um script que exiba a uma lista que tem os números de 1 até 10, na seguinte maneira:
Numero  1:  1
Numero  2:  2
Numero  3:  3
Numero  4:  4
Numero  5:  5
Numero  6:  6
Numero  7:  7
Numero  8:  8
Numero  9:  9
Numero 10: 10

Aqui tem uma pegadinha.
Para imprimir, vamos usar a range( len(numeros) ), assim o laço percorre todos os índices da lista.
Porém, o primeiro índice é 0.

Se printarmos a variável count direto, ia aparecer:
Número 0: 1
Número 1: 2 etc

Ou seja, temos que adicionar 1 na hora de imprimir:

numeros = []

for count in range(1,11):
    numeros += [count]

for count in range(len(numeros)):
    print("Numero %2d: %2d" %(count+1, numeros[count]))


Exemplo 6 de laço FOR e Listas 

Faça um script que peça ao usuário o número de matérias da escola, ou seja, um inteiro positivo.
Em seguida, ele vai digitando o valor de cada nota, de cada matéria e isso será armazenado numa lista.
Ao final, seu script deverá fornecer a média geral do aluno.
Primeiro, perguntamos ao usuário quantas matérias ele fez provas, e armazenamos em n.
Depois, criamos uma lista vazia, para as notas, bem como inicializamos a variável soma com valor 0, ela vai somar todas as notas.
Dentro do for, temos que preencher n notas, fazemos isso com a função range.
Perguntamos cada nota (imprimimos count+1, para os índices aparecerem bonitinho para o usuário, lembre-se que para ele a contagem não começa em 0, como começa para nós programadores) e vamos adicionando cada nota como uma lista, concatenando na lista maior notas.
Somamos o valor de soma com cada nota digitada.
No final, dividimos o valor dessa soma pelo número de matérias que o aluno fez provas, e temos a média geral dela.
Nosso código Python fica:
n = int(input("Numero de materias: "))
notas = []
soma=0

for count in range(n):
    nota=float(input("Nota da materia %2d: " % (count+1)))
    notas += [nota]    
    soma += nota

print("Notas: ",notas)
print("Media: %.2f" % (soma/n))


Exercícios Propostos

1. Faça um script que pede ao usuário um número inteiro positivo.
Em seguida, deve criar uma lista onde o primeiro termo é 0, o segundo é 1 e os outros são a sequência de Fibonacci. O número de termos é o que o usuário forneceu como número.

2. Faça um script que pede um número inteiro positivo ao usuário.
Em seguida, cria uma lista com igual número de itens, onde o primeiro termo é 1!, o segundo é 2!, o terceiro é o valor de 3!, etc, até o termo que ele digitou. Ou seja, se digitou n, vai exibir até o termo de índice n-1, e lá na lista vai ter o valor de (n-1)!.

Resolução desses exercícios no e-book

4 comentários:

  1. 1º Exercício proposto:

    print('Sequência Fibonacci\n')

    termos = int( input('Quantos termos? ') )
    seq = []

    for c in range(termos):
    if(c == 0 or c == 1):
    seq.append(c)
    else:
    seq.append( seq[c-1] + seq[c-2] )

    print('\n', seq)

    ResponderExcluir
  2. # -*- coding: cp1252 -*-

    # CALCULANDO A SÉRIE DE FIBONACCI USANDO LISTAS E FUNÇÃO

    def fibonacci(n) :
    if n == 1 :
    return 0
    elif n == 2 :
    return 1
    else :
    return fibonacci(n - 1) + fibonacci(n - 2)

    n = int(input("NÚMERO DE TERMOS DA SÉRIE."))
    fibo = []
    for i in range(1,n + 1) :
    fibo = [fibonacci(i)]
    print("FIBONACCI DE ", i, " É ", fibo)


    ResponderExcluir
  3. #ExercicioFibonacciList
    n=int(input("Digite o número de termos: "))
    fibo=[0,1]
    for i in range(n-2):
    fibo.append(fibo[i]+fibo[i+1])
    for j in range (n):
    print(fibo[j], end=' ')

    ResponderExcluir
  4. #ExercícioFatorialList
    def fatorial(n):
    if n==1 or n==0:
    return 1
    else:
    return n*fatorial(n-1)
    fatlist=[]
    n=int (input("Quantos termos? "))
    for i in range (n):
    fatlist.append(fatorial(i))
    print(fatlist[i])

    ResponderExcluir

Bora fazer evoluir o ensino da Programação no Brasil ?

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo