Aula 15 - Organizando os dados com listas

918 visualizações

Publicada em

Publicada em: Educação
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
918
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
62
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aula 15 - Organizando os dados com listas

  1. 1. Introdução a Algoritmos eLinguagens de Programação Aula 15 | Organizando os dados com listas Apresentação Luiz Augusto de M. Morais
  2. 2. Roteiro Listas ● Vários dados numa única variável ● Listas se comportam como strings ● Listas têm particularidades ● Usando o interpretador Campeonato de futebol freestyle ● Entendendo o problema ● Maior placar ● Separando os nomes e placares ● Os três primeiros ● Colocando na ordem certa ● Quem ganhou? UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  3. 3. ListasVários dadosnuma única variável UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  4. 4. Vários dados numa única variável fruta1 = pera fruta2 = uva fruta3 = maça E se fossem 10 print(fruta1) frutas?? print(fruta2) print(fruta3) UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  5. 5. Vários dados numa única variável frutas = [pera, uva, maça, melão, manga, abacaxi, morango, caju, melancia, tomate] for fruta in frutas: print(fruta) Tudo isso em apenas 4 linhas!! E com apenas uma variável UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  6. 6. ListasListas se comportamcomo strings UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  7. 7. Listas se comportam como strings frutas_vermelhas = [maça, morango, tomate] frutas_amarelas = [pera, melão, manga, caju] frutas = frutas_vermelhas + frutas_amarelas print(frutas[0]) print(frutas[-1]) print(len(frutas)) UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  8. 8. ListasListas têmparticularidades UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  9. 9. Listas têm particularidades notas = [9.2, 5.6, 7.9, 4.3, 5] notas[0] = 6 Podemos atribuir valores notas.append(5.4) Podemos adicionar valores notas.extend([1, 2, 3]) Podemos incorporar listas notas.sort() Podemos ordenar elementos print(notas) lista_mista = [1, 5.6, True, Olá, mundo!, [1, 2]] Listas podem conter Inclusive outras listas diferentes tipos de dados UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  10. 10. ListasUsando o interpretador UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  11. 11. Usando o Interpretador 1/2 >>> carros = [Ferrari, Gol, Fusca] >>> for carro in carros: ... print(carro) ... Ferrari Gol Fusca >>> carros[1] Gol >>> carros[-1] Fusca UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  12. 12. Usando o Interpretador 2/2 >>> carros = [Ferrari, Gol, Fusca] >>> motos = [Biz, CB500] >>> veiculos = carros + motos >>> print(veiculos) [Ferrari, Gol, Fusca, Biz, CB500] >>> veiculos[0] = Ônibus >>> marinhos = [Barco, Lancha] >>> veiculos.extend(marinhos) >>> veiculos.append(Tanque de Guerra) >>> print(veiculos) [Ônibus, Gol, Fusca, Biz, CB500, Barco, Lancha, Tanque de Guerra] UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  13. 13. Campeonato de futebol freestyleEntendendoo problema UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  14. 14. Entendendo o problemaComo os estudantes do curso IALP são bons de bola,resolvemos organizar um campeonato de futebol freestyle.Nós já estamos com as pontuaçõesdos jogadores.O problema é que muita genteparticipou e, assim, fica difícil saberquem ganhou. UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  15. 15. Campeonato de futebol freestyleMaior placar UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  16. 16. Maior placar Seu objetivo é desenvolver um programa que extraia o placar dos jogadores de um arquivo e depois diga quem obteve a maior pontuação. UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  17. 17. Maior placar Converte algo para ponto flutuante maior_placar = 0 resultado = open(resultado.txt) for placar in resultado: if float(placar) > maior_placar: maior_placar = float(placar) resultado.close() print(O maior placar foi: %1.1f % maior_placar) UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  18. 18. Campeonato de futebol freestyleTest Drive UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  19. 19. Campeonato de futebol freestyleSeparandoos nomes e placares UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  20. 20. Separando os nomes e placares O programa anterior não funcionou. O que será que aconteceu de errado? Nome Placar Adênio 8.9 Carlos 3.6 Edmarques 7.3 Dênis 3.0 Tentamos converter a linha toda para float. Temos que separar os nomes dos placares! UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  21. 21. Campeonato de futebol freestyleUsando o interpretador UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  22. 22. Usando o Interpretador >>> help(split) >>> frase = Meu nome é Luiz >>> palavras = frase.split() >>> print(palavras) [Meu, nome, é, Luiz] >>> nome, placar = Luiz 10.split() >>> print(nome) Luiz >>> print(placar) 10 UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  23. 23. Separando os nomes e placares Divide uma string maior_placar = 0 resultado = open(resultado.txt) for linha in resultado: nome, placar = linha.split() if float(placar) > maior_placar: maior_placar = float(placar) resultado.close() print(O maior placar foi: %1.1f % maior_placar) UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  24. 24. Campeonato de futebol freestyleTest Drive UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  25. 25. Campeonato de futebol freestyleOs três primeiros UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  26. 26. Os três primeiros Ok, já temos o maior placar, mas temos três medalhas. Modifique o programa para que ele exiba os três primeiros colocados. UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  27. 27. Os três primeiros Cria uma lista vazia placares = [] resultado = open(resultado.txt) for linha in resultado: nome, placar = linha.split() placares.append(float(placar)) Adiciona um elemento na lista resultado.close() print(Os três maiores placares foram:) print(1) %1.1f % placares[0]) print(2) %1.1f % placares[1]) print(3) %1.1f % placares[2]) UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  28. 28. Campeonato de futebol freestyleTest Drive UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  29. 29. Campeonato de futebol freestyleColocando naordem certa UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  30. 30. Colocando na ordem certa Ôpa! Tem alguma coisa errada com o resultado. Como o segundo lugar pode ter menos pontos que o terceiro? 1) 8.9 2) 3.6 3) 7.3 Alguém lembrou de ordenar os valores desta lista? Lembre-se: o método sort() ordena na ordem crescente. UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  31. 31. Colocando na ordem certa placares = [] resultado = open(resultado.txt) for linha in resultado: nome, placar = linha.split() placares.append(float(placar)) resultado.close() Ordenando a lista em placares.sort(reverse=True) ordem decrescente print(Os três maiores placares foram:) print(1) %1.1f % placares[0]) print(2) %1.1f % placares[1]) print(3) %1.1f % placares[2]) UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  32. 32. Campeonato de futebol freestyleTest Drive UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  33. 33. Campeonato de futebol freestyleQuem ganhou? UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  34. 34. Quem ganhou? Cadê o Cadê o vencedor, mano?! vencedor, mano?! Ôba, já temos os resultados dos vencedores. 1) 9.2 2) 8.9 3) 8.8 Espera um minuto. Mas cadê os nomes dos vencedores??? UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  35. 35. Campeonato de futebol freestylePerguntas Idiotas UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  36. 36. Perguntas Idiotas ● Quando devo usar listas? ● Por que sort é pra ordenar e não sortear?? ● Posso fazer mais coisas com listas? UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  37. 37. O que aprendemos hoje? ● Listas ● Métodos: ● sort ● append ● extend UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
  38. 38. ReferênciasDOWNEY, Allen. Think Python: How to Think Like a Computer Scientist.Needham: Green Tea Press, 2008.SWEIGART, Al. Invent Your Own Computer Games with Python.2. ed. [S. l. : s. n.]. 2010. UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETO HERMES

×