Taí uma boa pergunta... Ainda n testei o novo Python pra saber :D
Também está correto. Mas como estou abordando o Python para iniciantes na programação achei melhor deixar explícito essa conversão.
Muito bom!
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. ??
Belewwwza!
Na versão do Python que eu uso sou obrigado a usar a função "print()", que vai para a linha de baixo automaticamente após sua execução. Tem como evitar que isso aconteça? Porque eu gostaria que continuasse na mesma linha quando eu fosse adicionar uma informação como "Aluno reprovado por falta e por média" mas infelizmente não consigo fazer isso. Segue minha solução para os exercícios: Código PHP: #!/usr/bin/env python # -*- coding: utf-8 -*- 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 notas: if faltas[aluno]>10: print(aluno,"reprovado por número de faltas") if (sum(notas[aluno]) / len(notas[aluno])) <6: print(aluno,"reprovado por média") Por algum motivo o resultado também está saindo fora de ordem. Você saberia me ajudar a explicar por quê isso acontece? Código : Python 3.2 (r32:88445, Feb 20 2011, 21:30:00) [MSC v.1500 64 bit (AMD64)] on win32 Type "copyright", "credits" or "license()" for more information. >>> ================================ RESTART ================================ >>> aluno1 reprovado por média aluno5 reprovado por média aluno4 reprovado por número de faltas >>> Valeu!
#!/usr/bin/env python # -*- coding: utf-8 -*- 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 notas: if faltas[aluno]>10: print(aluno,"reprovado por número de faltas") if (sum(notas[aluno]) / len(notas[aluno])) <6: print(aluno,"reprovado por média")
Python 3.2 (r32:88445, Feb 20 2011, 21:30:00) [MSC v.1500 64 bit (AMD64)] on win32 Type "copyright", "credits" or "license()" for more information. >>> ================================ RESTART ================================ >>> aluno1 reprovado por média aluno5 reprovado por média aluno4 reprovado por número de faltas >>>
Postado originalmente por Magnun Correto silvanofideles, não é necessário. Acho que era mais ou menos isso que o "silvanofideles" comentou que eu ia perguntar - com relação ao uso do "float()". O programa ficaria mais simples (e relativamente mais rápido, exigindo ao processador uma operação a menos) se ao invés de usar o float() eu apenas declaresse a variável com 0.00 ?? Código PHP: #!/usr/bin/env python # -*- coding: utf-8 -*- # Media de notas dos alunos alunos={'Fulano':[6,7,5,2],'Sicrano':[7,8,9,8],'Beltrano':[10,9,10,10]} m_turma = 0.00 for aluno,notas in alunos.items(): media = 0.00 for nota in notas: media += nota media /= len(notas) m_turma += media print("Nome:",aluno,"\t- Média: %.2f"%media,"(Reprovado)" if media<6 else "") m_turma /= len(alunos) print("\nMédia da turma: %.2f"%m_turma) Obrigado!
#!/usr/bin/env python # -*- coding: utf-8 -*- # Media de notas dos alunos alunos={'Fulano':[6,7,5,2],'Sicrano':[7,8,9,8],'Beltrano':[10,9,10,10]} m_turma = 0.00 for aluno,notas in alunos.items(): media = 0.00 for nota in notas: media += nota media /= len(notas) m_turma += media print("Nome:",aluno,"\t- Média: %.2f"%media,"(Reprovado)" if media<6 else "") m_turma /= len(alunos) print("\nMédia da turma: %.2f"%m_turma)
Estudei a solução do cleoson e percebi que poderia fazer umas melhorias reduzindo o número de variáveis e movendo algumas instruções para fora do segundo "for" a fim de acelerar a execução do programa. Veja como ficou: Código PHP: #!/usr/bin/env python # -*- coding: utf-8 -*- # Media de notas dos alunos alunos={'fulano':[6,7,5,2],'sicrano':[7,8,9,8],'beltrano':[10,9,10,10]} m_turma, n_alunos = 0.00, 0 for aluno in alunos.items(): soma = 0.00 n_alunos += 1 for nota in aluno[1]: notas = len(aluno[1]) soma += nota media = soma / notas status = 'Aprovado!' if media >= 6 else 'Reprovado!' m_turma += media print('Nome:',aluno[0],'\t- Média:',media,'\t- Situação:',status) print('\nA média da turma é: %.2f'%(m_turma / n_alunos)) Valeu cleoson! Se vc não tivesse feito a sua versão eu não saberia nem como fazer a minha porque ainda não sei quase nada de Python. ^^
#!/usr/bin/env python # -*- coding: utf-8 -*- # Media de notas dos alunos alunos={'fulano':[6,7,5,2],'sicrano':[7,8,9,8],'beltrano':[10,9,10,10]} m_turma, n_alunos = 0.00, 0 for aluno in alunos.items(): soma = 0.00 n_alunos += 1 for nota in aluno[1]: notas = len(aluno[1]) soma += nota media = soma / notas status = 'Aprovado!' if media >= 6 else 'Reprovado!' m_turma += media print('Nome:',aluno[0],'\t- Média:',media,'\t- Situação:',status) print('\nA média da turma é: %.2f'%(m_turma / n_alunos))
Por algum motivo que desconheço a seguinte linha está dando erro >>> for album,ano in smashing_pumpkins.items(): troque todas as ocorrências dessa linha pelas siguintes: >>> smash_albuns = smashing_pumpkins.items() >>> for album,ano in smash_albuns: dai segue normalmente. Até mais...
Comigo começou a dar erro a partir de certo ponto: Código PHP: >>> smashing_pumpkins.items() dict_items([('Gish', 1991), ('Mellon Collie', 1995), ('Siamese Dream', 1993)]) >>> for items in smashing_pumpkings.items(): print(item) Traceback (most recent call last): File "<pyshell#29>", line 1, in <module> for items in smashing_pumpkings.items(): NameError: name 'smashing_pumpkings' is not defined >>> smashing_pumpkins = {'Gish':1991, 'Siamese Dream':1993, 'Mellon Collie':1995} >>> for items in smashing_pumpkings.items(): print(items) Traceback (most recent call last): File "<pyshell#33>", line 1, in <module> for items in smashing_pumpkings.items(): NameError: name 'smashing_pumpkings' is not defined >>> smashing_pumpkins = {'Gish':1991, 'Siamese Dream':1993, 'Mellon Collie':1995} >>> for album,ano in smashing_pumpkings.items(): print("O album",album,"foi lançado em",ano) Traceback (most recent call last): File "<pyshell#37>", line 1, in <module> for album,ano in smashing_pumpkings.items(): NameError: name 'smashing_pumpkings' is not defined Sei que é por causa da versão do Python (3.2) que eu uso, mas vc já saberia dizer quais mudanças eu deveria fazer para fazer esses códigos funcionarem e assim poder seguir em frente com as aulas antigas mesmo que são só as que tenho por enquanto? Obrigado!
>>> smashing_pumpkins.items() dict_items([('Gish', 1991), ('Mellon Collie', 1995), ('Siamese Dream', 1993)]) >>> for items in smashing_pumpkings.items(): print(item) Traceback (most recent call last): File "<pyshell#29>", line 1, in <module> for items in smashing_pumpkings.items(): NameError: name 'smashing_pumpkings' is not defined >>> smashing_pumpkins = {'Gish':1991, 'Siamese Dream':1993, 'Mellon Collie':1995} >>> for items in smashing_pumpkings.items(): print(items) Traceback (most recent call last): File "<pyshell#33>", line 1, in <module> for items in smashing_pumpkings.items(): NameError: name 'smashing_pumpkings' is not defined >>> smashing_pumpkins = {'Gish':1991, 'Siamese Dream':1993, 'Mellon Collie':1995} >>> for album,ano in smashing_pumpkings.items(): print("O album",album,"foi lançado em",ano) Traceback (most recent call last): File "<pyshell#37>", line 1, in <module> for album,ano in smashing_pumpkings.items(): NameError: name 'smashing_pumpkings' is not defined