aula 15 - organizando os dados com listas
DESCRIPTION
TRANSCRIPT
![Page 1: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/1.jpg)
Introdução a Algoritmos e
Linguagens de Programação
ApresentaçãoLuiz Augusto de M. Morais
Aula 15 | Organizando os dados com listas
![Page 2: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/2.jpg)
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Roteiro
●Vários dados numa única variável●Listas se comportam como strings●Listas têm particularidades●Usando o interpretador
Listas
●Entendendo o problema●Maior placar●Separando os nomes e placares●Os três primeiros●Colocando na ordem certa●Quem ganhou?
Campeonato de futebol freestyle
![Page 3: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/3.jpg)
Listas
Vários dadosnuma única variável
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
![Page 4: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/4.jpg)
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Vários dados numa única variável
fruta1 = 'pera'
fruta2 = 'uva'
fruta3 = 'maça'
print(fruta1)
print(fruta2)
print(fruta3)
E se fossem 10 frutas??
![Page 5: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/5.jpg)
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
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
![Page 6: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/6.jpg)
Listas
Listas se comportamcomo strings
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
![Page 7: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/7.jpg)
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
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))
![Page 8: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/8.jpg)
Listas
Listas têmparticularidades
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
![Page 9: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/9.jpg)
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Listas têm particularidades
notas = [9.2, 5.6, 7.9, 4.3, 5]
notas[0] = 6
notas.append(5.4)
notas.extend([1, 2, 3])
notas.sort()
print(notas)
lista_mista = [1, 5.6, True, 'Olá, mundo!', [1, 2]]
Podemos atribuir valores
Podemos adicionar valores
Podemos incorporar listas
Podemos ordenar elementos
Listas podem conter diferentes tipos de dados
Inclusive outras listas
![Page 10: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/10.jpg)
Listas
Usando o interpretador
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
![Page 11: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/11.jpg)
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Usando o Interpretador 1/2
>>> carros = ['Ferrari', 'Gol', 'Fusca']>>> for carro in carros:... print(carro)...FerrariGolFusca>>> carros[1]'Gol'>>> carros[-1]'Fusca'
![Page 12: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/12.jpg)
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
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']
![Page 13: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/13.jpg)
Campeonato de futebol freestyle
Entendendoo problema
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
![Page 14: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/14.jpg)
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Entendendo o problema
Como os estudantes do curso IALP são bons de bola, resolvemos organizar um campeonato de futebol freestyle.
Nós já estamos com as pontuações dos jogadores.
O problema é que muita gente participou e, assim, fica difícil saber quem ganhou.
![Page 15: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/15.jpg)
Campeonato de futebol freestyle
Maior placar
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
![Page 16: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/16.jpg)
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
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.
![Page 17: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/17.jpg)
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Maior placar
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)
Converte algo para ponto flutuante
![Page 18: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/18.jpg)
Campeonato de futebol freestyle
Test Drive
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
![Page 19: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/19.jpg)
Campeonato de futebol freestyle
Separandoos nomes e placares
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
![Page 20: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/20.jpg)
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Separando os nomes e placares
O programa anterior não funcionou. O que será que aconteceu de errado?
Nome PlacarAdênio 8.9Carlos 3.6Edmarques 7.3Dênis 3.0
Tentamos converter a linha toda para float.
Temos que separar os nomes dos placares!
![Page 21: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/21.jpg)
Campeonato de futebol freestyle
Usando o interpretador
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
![Page 22: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/22.jpg)
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
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
![Page 23: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/23.jpg)
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Separando os nomes e placares
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)
Divide uma string
![Page 24: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/24.jpg)
Campeonato de futebol freestyle
Test Drive
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
![Page 25: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/25.jpg)
Campeonato de futebol freestyle
Os três primeiros
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
![Page 26: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/26.jpg)
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
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.
![Page 27: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/27.jpg)
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Os três primeiros
placares = []
resultado = open('resultado.txt')
for linha in resultado:
nome, placar = linha.split()
placares.append(float(placar))
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])
Adiciona um elemento na lista
Cria uma lista vazia
![Page 28: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/28.jpg)
Campeonato de futebol freestyle
Test Drive
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
![Page 29: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/29.jpg)
Campeonato de futebol freestyle
Colocando naordem certa
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
![Page 30: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/30.jpg)
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
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.92) 3.63) 7.3
Alguém lembrou de ordenar os valores desta lista?
Lembre-se: o método sort() ordena na ordem crescente.
![Page 31: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/31.jpg)
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Colocando na ordem certa
placares = []
resultado = open('resultado.txt')
for linha in resultado:
nome, placar = linha.split()
placares.append(float(placar))
resultado.close()
placares.sort(reverse=True)
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])
Ordenando a lista em ordem decrescente
![Page 32: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/32.jpg)
Campeonato de futebol freestyle
Test Drive
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
![Page 33: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/33.jpg)
Campeonato de futebol freestyle
Quem ganhou?
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
![Page 34: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/34.jpg)
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Quem ganhou?
Ôba, já temos os resultados dos vencedores.
1) 9.22) 8.93) 8.8
Espera um minuto. Mas cadê os nomes dos vencedores???
Cadê ovencedor, mano?!
Cadê ovencedor, mano?!
![Page 35: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/35.jpg)
Campeonato de futebol freestyle
Perguntas Idiotas
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
![Page 36: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/36.jpg)
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Perguntas Idiotas
●Quando devo usar listas?●Por que sort é pra ordenar e não sortear??●Posso fazer mais coisas com listas?
![Page 37: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/37.jpg)
●Listas●Métodos:
● sort● append● extend
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
O que aprendemos hoje?
![Page 38: Aula 15 - Organizando os dados com listas](https://reader034.vdocuments.pub/reader034/viewer/2022051323/54972ce8ac7959132e8b532f/html5/thumbnails/38.jpg)
Referências
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETO HERMES
DOWNEY, 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.