Ver Feed RSS

root@blog:/# chmod o+r *

[Curso de Python] Correção - O for e Outras Palavras Mais

Avalie este Post de Blog

Antes de prosseguir leia os artigos anteriores aqui.



No último post eu deixei alguns exercícios a serem resolvidos. O nosso colega neiesc postou uma solução que pode ser conferida aqui.

A solução dele foi bem interessante mas utilizou algumas funções que ainda não estudamos aqui (como o sum), dessa forma vou postar uma solução somente utilizando loops for. Um pequeno detalhe que nosso colega esqueceu foi de especificar o numero como float na divisão das notas, o que pode causar certos problemas em um programa.

Vamos às soluções.

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:
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 aluno',aluno,'foi reprovado por faltas' 
Execução:
Código :
O aluno aluno4 foi reprovado por faltas
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 PHP:
faltas = {'aluno1':2'aluno2':3'aluno3':7'aluno4':11'aluno5':0'aluno6':10}

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]}

for 
aluno in faltas:
    if 
faltas[aluno] > 10:
        print 
'O aluno',aluno,'foi reprovado por faltas'
    
else:
        
media 0
        
for nota in notas[aluno]:
            
media += nota
        media 
float(media)/3
        
if media >= 6:
            print 
'O aluno',aluno,'foi aprovado com média:',media
        
else:
            print 
'O aluno',aluno,'foi reprovado com média:',media 
Execução:
Código :
O aluno aluno1 foi reprovado com média: 5.33333333333
O aluno aluno3 foi aprovado com média: 6.66666666667
O aluno aluno2 foi aprovado com média: 7.0
O aluno aluno5 foi reprovado com média: 4.66666666667
O aluno aluno4 foi reprovado por faltas
O aluno aluno6 foi aprovado com média: 6.0
Como eu comentei, esses são exercícios simples apenas para fixação dos conceitos estudados até aqui. De agora para frente os exercícios serão bem diferentes.

Até mais...

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

Categorias
Artigos , Artigos , Cursos , Curso de Python

Comentários

Página 1 de 2 12 ÚltimoÚltimo
  1. Avatar de silvanofideles
    Magnun, gostaria de propor um dicionário a mais no exercício acima, só para compreender melhor o assuntos. Digamos que tivéssemos o dicionario abaixo e para aqueles alunos que reprovaram por media, ainda tivesse uma chance no conselho de classe com nota dos professores acima de 8. como ficaria ???

    conselho = {'aluno1':7, 'aluno2':6, 'aluno4':8, 'aluno3':9, 'aluno5':10, 'aluno6':7}
  2. Avatar de Magnun
    Olá silvanofideles, ficaria da seguinte forma:
    Código :
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
     
     
    faltas = {'aluno1':2, 'aluno2':3, 'aluno3':7, 'aluno4':11, 'aluno5':0, 'aluno6':10}
     
    conselho = {'aluno1':7, 'aluno2':6, 'aluno4':8, 'aluno3':9, 'aluno5':10, 'aluno6':7}
     
    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]}
     
    for aluno in faltas:
        if faltas[aluno] > 10:
            print 'O aluno',aluno,'foi reprovado por faltas'
        else:
            media = 0
            for nota in notas[aluno]:
                media += nota
            media = float(media)/3
            if media >= 6:
                print 'O aluno',aluno,'foi aprovado com média:',media
            else:
                if conselho[aluno] >= 8:
                    print 'O aluno',aluno,'foi aprovado pelo conseho de classe'
                else:
                    print 'O aluno',aluno,'foi reprovado com média:',media
  3. Avatar de silvanofideles
    Legal, sanei minhas dúvidas, e agradeço a rápida resposta e muito mais a sua ajuda e dedicação... só tenho que te parabenizar pelo belo trabalho.
  4. Avatar de fabraga
    Não há como esse resultado sair ordenado? Tipo:

    O aluno aluno1 foi...
    O aluno aluno2 foi...
    O aluno aluno3 foi...
    O aluno aluno4 foi...
    etc.

    ??
  5. Avatar de Magnun
    Tem, utilizando um dicionário ordenado. Mas isso é um oooooutro assunto (e também só está disponível no novo Python)
Página 1 de 2 12 ÚltimoÚltimo

+ Enviar Comentário



Visite: BR-Linux ·  VivaOLinux ·  Dicas-L