Usando o que foi ensinado até agora, acho que meu código saiu o mais simples possível: Código PHP: #!/usr/bin/env python # -*- coding: utf-8 -*- def media_alunos(alunos): m_alunos = 0.00 for aluno,notas in alunos.items(): media = 0.00 for nota in notas: media += nota media /= len(notas) m_alunos += media return(m_alunos / len(alunos)) 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]} print("\nMédia de todos os alunos: %.2f"%media_alunos(notas)) def quadrado(num): return (num * num) print("O quadrado é",quadrado(int(input("\nInforme um número: ")))) def maior(nums): m = nums[0] for n in nums: if n>m: m = n return (m) print("O maior número da lista é",maior(list(input("\nInforme alguns números separados por vírgula: ")))) Saída: Código PHP: 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 ================================ >>> Média de todos os alunos: 6.17 Informe um número: 7 O quadrado é 49 Informe alguns números separados por vírgula: 4,0,3 O maior número da lista é 4 >>>
#!/usr/bin/env python # -*- coding: utf-8 -*- def media_alunos(alunos): m_alunos = 0.00 for aluno,notas in alunos.items(): media = 0.00 for nota in notas: media += nota media /= len(notas) m_alunos += media return(m_alunos / len(alunos)) 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]} print("\nMédia de todos os alunos: %.2f"%media_alunos(notas)) def quadrado(num): return (num * num) print("O quadrado é",quadrado(int(input("\nInforme um número: ")))) def maior(nums): m = nums[0] for n in nums: if n>m: m = n return (m) print("O maior número da lista é",maior(list(input("\nInforme alguns números separados por vírgula: "))))
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 ================================ >>> Média de todos os alunos: 6.17 Informe um número: 7 O quadrado é 49 Informe alguns números separados por vírgula: 4,0,3 O maior número da lista é 4 >>>
Quanto ao grupo de desenvolvimento, fio feliz de ver insteressados! No momento somos ao todo..... deixa eu contar.... perai.... cade a lista de inscritos... hum.... ah achei! somos ao todo 2: eu e você! Heheheheh Pois é, ninguém tem se interessado! Bem, minha ideia é auxiliar e ensinar o desenvolvimento de aplicações em Python. Se precisar de alguma coisa entra em contato! Se você arranajr mais gente podemos pensar em algo!
Ai é que está o detalhe fabraga :D O else do while é executado quando o while é rodado exaustivamente, se ele for interrompido por um break ele simplesmente é ignorado. Veja esse exemplo: >>> for i in range(10): ... if i == 3: ... break ... print 'i='+str(i) ... else: ... print 'fim' ... i=0 i=1 i=2 >>>
Tem, utilizando um dicionário ordenado. Mas isso é um oooooutro assunto (e também só está disponível no novo Python)
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 >>>