Ver Feed RSS

[email protected]:/# chmod o+r *

[Curso de Python] O for e Outras Palavras Mais

Avalie este Post de Blog

Antes de prosseguir leia os artigos anteriores aqui.



Olá pessoal!! Retomando os posts desse curso de Python, se é que alguém ainda lembra quem eu sou...



O For e Outras Palavras Mais



Assim como o while, o for também pode ser associado a algumas palavras que o tornam mais útil. Então aqui vamos ver como usar o for em conjunto com as instruções break e else. Como todos esses já foram explicados utilizando a estrutura while não vou aprofundar muito no funcionamento desses, vou apenas mostrar alguns exemplos de implementação e deixar alguns exercícios.


A instrução break

A instrução break, conforme visto anteriormente, é útil para interromper abruptamente um loop. Para exemplificar vamos fazer um loop que procura a primeira ocorrência de um mesmo número dentro de duas listas.

Código:
lista1 = [1,2,3]
lista2 = [7, 5, 3, 4, 1]

for item1 in lista1:
    print 'procurando por',item1,'...'
    for item2 in lista2:
        print '\t',item1,'==',item2,'??',
        if item1 == item2:
            print ' Sim!'
            break
        else:
            print ' Não'
Output gerado:
Código:
procurando por 1 ...
        1 == 7 ??  Não
        1 == 5 ??  Não
        1 == 3 ??  Não
        1 == 4 ??  Não
        1 == 1 ??  Sim!
procurando por 2 ...
        2 == 7 ??  Não
        2 == 5 ??  Não
        2 == 3 ??  Não
        2 == 4 ??  Não
        2 == 1 ??  Não
procurando por 3 ...
        3 == 7 ??  Não
        3 == 5 ??  Não
        3 == 3 ??  Sim!
Coloquei muitos print para mostrar que o break impede que a lista2 seja percorrida totalmente.



A instrução else

Podemos ver que eu gerei muito output pra tornar o fluxo compreensivo além de não ter percebido que o número 2 não foi encontrado na lsita2. Com a ajuda da instrução else, podemos simplificar esse output e também detectar que o numero 2 não foi encontrado.
Código:
lista1 = [1,2,3]
lista2 = [7, 5, 3, 4, 1]

for item1 in lista1:
    print 'procurando por',item1,':',
    for item2 in lista2:
        if item1 == item2:
            print 'Encontrado!'
            break
    else:    
        print 'Não encontrado...'
Output gerado:
Código:
procurando por 1 : Encontrado!
procurando por 2 : Não encontrado...
procurando por 3 : Encontrado!
Exercícios
A título de fixação deixo alguns exercícios:
1. Dado o dicionário abaixo, faça programa que verifique qual dos alunos foi reprovado por falta. O critério de reprovação é ter mais faltado mais de 10 vezes.
Código:
faltas = {'aluno1':2, 'aluno2':3, 'aluno3':7, 'aluno4':11, 'aluno5':0, 'aluno6':10}
2. Tendo o exemplo anterior como base, modifique o programa de forma que ele cruze os dados do dicionário de faltas com o dicionário de notas (a baixo) e informe se o aluno foi aprovado, usando o critério de faltas e a média de suas notas (maior que 6).
Código:
notas = {'aluno1':[5,6,5], 'aluno2':[7,8,6], 'aluno3':[6,6,8], 'aluno4':[5,9,8], 'aluno5':[5,6,3], 'aluno6':[6,6,6]}

Atualizado 01-09-2010 em 09:17 por Magnun

Categorias
Python , Artigos , Artigos , Cursos , Curso de Python

Comentários

Página 1 de 2 12 ÚltimoÚltimo
  1. Avatar de Magal
    Bom Garoto!! Voltou.
  2. Avatar de Magnun
    Hehe.... Acho que sim!
  3. Avatar de neiesc
    Fica ai minha resolução dos exercicios
    Exercicio 1:
    Código PHP:
    faltas = {'aluno1':2'aluno2':3'aluno3':7'aluno4':11'aluno5':0'aluno6':10}

    for 
    aluno in faltas:
        if 
    faltas[aluno] > 10:
            print 
    'O %s reprovou pois tem %i faltas' %(alunofaltas[aluno])
        else:
            print 
    'O %s passou pois tem %i faltas' %(alunofaltas[aluno]) 
    Exercicio 2:
    Código PHP:
    notas = {'aluno1':[5,6,5], 'aluno2':[7,8,6], 'aluno3':[6,6,8], 'aluno4':[5,9,8], 'aluno5':[5,6,3], 'aluno6':[6,6,6]}
    faltas = {'aluno1':2'aluno2':3'aluno3':7'aluno4':11'aluno5':0'aluno6':10}
    for 
    aluno in notas:
        
    media sum(notas[aluno]) / len(notas[aluno])

        if 
    media and faltas[aluno] <= 10:
            print 
    'O %s foi aprovado, media: %i faltas: %i' %(alunomediafaltas[aluno])
        else:
            print 
    'O %s foi reprovado, media: %i faltas: %i' %(alunomediafaltas[aluno]) 
  4. Avatar de Magnun
    @neiesc,
    ótima resolução! Parabéns. Não esqueça de acompanhar o resto do curso.

    Até mais...
  5. Avatar de cleoson
    Olá Magnun,
    Abaixo minha resolução para os exercícios:

    Primeiro exercício:
    Código:
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    faltas = {'aluno1':2, 'aluno2':3, 'aluno3':7, 'aluno4':11, 'aluno5':0, 'aluno6':10}
    
    for aluno,falta in faltas.items():
        if falta > 10:
            print 'Aluno:',aluno,'REPROVADO! Possui',falta,'faltas!'
    Segundo Exercício:
    Código:
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    faltas = {'aluno1':2, 'aluno2':3, 'aluno3':7, 'aluno4':11, 'aluno5':0, 'aluno6':1}
    notas = {'aluno1':[5,6,5], 'aluno2':[7,8,6], 'aluno3':[6,6,8], 'aluno4':[5,9,8], 'aluno5':[5,6,3], 'aluno6':[6,6,7]}
        
    for aluno_notas,nota in notas.items():
        media = 0
        for notan in nota:
            media += notan
        media = float(media) / len(nota)
        if media > 6:
            for aluno_faltas,falta in faltas.items():
                if aluno_notas == aluno_faltas:
                    if falta < 10:
                         print 'Aluno',aluno_notas,'aprovado.'
                    break

    Um abraço!
Página 1 de 2 12 ÚltimoÚltimo

+ Enviar Comentário




Visite: BR-Linux ·  VivaOLinux ·  Dicas-L