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
Muito bom!!
Exercício #1: Código PHP: texto=input("Informe um texto: ") letra=input("Informe uma letra para buscarmos: ") if len(letra)>1: print("Foi informada a palavra:",letra,".") letra=letra[0] print("Será considerado apenas a primeira letra: ",letra) n=0 ocorrencias=0 while n<len(texto): letra_texto=texto[n] n=n+1 if letra_texto == letra: ocorrencias += 1 if ocorrencias > 0: print("Encontradas %i ocorrências da letra %s"%(ocorrencias,letra),".") else: print("Não foi possível encontrar a letra",letra) Exercício #2: Código PHP: palavra="" while palavra != "pare": if len(palavra)>0: print("A palavra tem",str(len(palavra)),"letras.") palavra=input("Informe uma palavra (ou 'pare' para parar): ") Desafio: Código PHP: l = [3, 4, 2, 1, 5] print("Lista original:",l) m = 0 n = 1 i = 0 while m < len(l): while n < len(l): if l[m] > l[n]: i = l[m] l[m] = l[n] l[n] = i n += 1 m += 1 n = m+1 print("Lista ordenada:",l)
texto=input("Informe um texto: ") letra=input("Informe uma letra para buscarmos: ") if len(letra)>1: print("Foi informada a palavra:",letra,".") letra=letra[0] print("Será considerado apenas a primeira letra: ",letra) n=0 ocorrencias=0 while n<len(texto): letra_texto=texto[n] n=n+1 if letra_texto == letra: ocorrencias += 1 if ocorrencias > 0: print("Encontradas %i ocorrências da letra %s"%(ocorrencias,letra),".") else: print("Não foi possível encontrar a letra",letra)
palavra="" while palavra != "pare": if len(palavra)>0: print("A palavra tem",str(len(palavra)),"letras.") palavra=input("Informe uma palavra (ou 'pare' para parar): ")
l = [3, 4, 2, 1, 5] print("Lista original:",l) m = 0 n = 1 i = 0 while m < len(l): while n < len(l): if l[m] > l[n]: i = l[m] l[m] = l[n] l[n] = i n += 1 m += 1 n = m+1 print("Lista ordenada:",l)
Quanto ao problema do silvanofideles, acho que é porque ele está usando uma versão mais recente to Python, que não reconhece o "print" sem os parênteses.
Eu não consegui encontrar onde você postou esses exercícios de média, palavra e frase. Acho que essa aula está fora do índice!
É, porque por enquanto não vi utilidade nenhuma para o else do while. A instrução inserida no else poderia estar fora dela porque seria executada de qualquer jeito. Sou o primeiro aluno de turma na minha formação em Ciência da Computação (em todas as disciplinas, principalmente lógica e matemática) e gostaria de participar do grupo de desenvolvimento que você está montando, mas não antes de terminar de aprender Python porque já estou há muito tempo sem programar e preciso me atualizar.
Magnun, eu não encontrei onde você postou os resultados desses seus exercícios. O que eu encontrei, na sua aula seguinte, foi a correção de outros exercícios que nem vi onde vc os colocou...