MC-102 — Aula 06
Comandos Repetitivos

O comando for

O comando for

    a = [1, 21, 31]
    for i in a:
       print(i)

A função range

A função range

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

A função range

    for i in range(0,13,2):
      print(i)

O comando for

Imprimindo os \(n\) primeiros números inteiros:

n = int(input("Digite um número:"))
for i in range(1,n+1):
   print(i)

Leitura

Leia 5 dados inteiros e coloque-os numa lista

lista = []
for i in range(5):
  dado = int(input('Entre com o dado:'))
  lista.append(dado)

Leitura

Faça uma função leia5 que le 5 dados inteiros e retorna um lista com esses dados

def leia5():

   lista = []
   for i in range(5):
      dado = int(input('Entre com o dado: '))
      lista.append(dado)
   return lista

Leitura

Faça uma função leian que le n dados inteiros e retorna um lista com esses dados

def leian(n):

   lista = []
   for i in range(n):
      dado = int(input('Entre com o dado: '))
      lista.append(dado)
   return lista

Leitura

Faça uma função soma recebe uma lista de numeros e retorna a soma deles

def soma(lista):

   s = 0.0
   for x in lista:
      s = s + x
   return s

Leitura

Faça um programa que le \(n\), depois le \(n\) dados e imprime a média deles.

a soma deles

Leitura

Faça um programa que le \(n\), depois le \(n\) dados e imprime a média deles.

a soma deles

n = int(input('Quantidade de dados: '))

l = leian(n)
s = soma(l)
print(s/len(l))

Leitura

Faça um programa que le \(n\), depois le \(n\) dados e imprime a média deles.

a soma deles

n = int(input('Quantidade de dados: '))
s=0.0
for i in range(n)
   x = int(input('dado: ')
   s = s + x
print(s/n)

Exercício

Faca uma função que dado uma lista retorna o maior elemento da lista

def maior(l):
   ma = 0
   for x in l:
     if x>ma:
        ma = x
   return ma

Não esta 100% OK - e se os números da lista forem negativos?

Exercício

Faça uma função que dado uma lista retorna o indice do maior elemento da lista

def maior(l):
   ma = 0
   n = len(l)
   for i in range(n):
     if l[i]>ma:
        ma = l[i]
        pos = i
   return pos

Leitura ate o fim

E se em vez de dar o \(n\) antes, o usuário entrar com uma linha vazia para indicar que ele terminou de entrar com os dados.

Neste caso temos 3 novos problemas:

O comando break

O comando break faz com que a execução de um laço seja terminada, passando a execução para o próximo comando depois do final do laço.

for i in range (1,11):
   if(i >= 5):
       break
   print(i)
print("Terminou o laço") 

O que será impresso?

Comandos while e break

Laços e o comando break

O comando break faz com que a execução de um laço seja terminada, passando a execução para o próximo comando depois do final do laço.

    for i in range (1,11):
        if(i >= 5):
            break
        print(i)
    print("Terminou o laço") 

O que será impresso?

Comando while

Comando while

O while só testa a condição no começo do loop!

O comando while

A forma mais comum de usar o while é

while True:
     comandos
     if tem que terminar:
           break 
     mais comandos

Isso cir aum loop que fica rodando (condição do while é sempre True!) até que no meio do loop voce descobre que tem que terminar!

Laços e o comando break

    i=1
    while True:
        if(i > 10):
            break
        print(i)
        i = i+1

O que será impresso?

Leitura ate o fim

E se em vez de dar o \(n\) antes, o usuário entrar com uma liha vazia para indicar que ele terminou de entrar com os dados.

Neste caso temos 3 novos problemas:

Leitura ate o fim

def leiafim ():
   lista = []
   while True:
      x = input('Entre com os dados: ')
      if x = '': 
          break
      dado = int(x)
      lista.append(dado) 
   return lista

Exercício

Exercício

Exercício

Exercício

Exercício

Exercício

Exercício

Números de Fibonacci

Problema Fazer um programa que imprime os primeiros \(n\) números da série de fibonacci.

listas implicitas

x = range(3)
x
len(x)
for i in x:
    print(i)

x[1]
x == [0,1,2]

x.append(7)