O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
Aula 15 - Organizando os dados com listas
1. Introdução a Algoritmos e
Linguagens de Programação
Aula 15 | Organizando os dados com listas
Apresentação
Luiz Augusto de M. Morais
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
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. 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
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
13. Campeonato de futebol freestyle
Entendendo
o problema
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
14. 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.
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
15. Campeonato de futebol freestyle
Maior placar
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
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. 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. Campeonato de futebol freestyle
Test Drive
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
19. Campeonato de futebol freestyle
Separando
os nomes e placares
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
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. Campeonato de futebol freestyle
Usando o interpretador
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
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. 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. Campeonato de futebol freestyle
Test Drive
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
25. Campeonato de futebol freestyle
Os três primeiros
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
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. 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. Campeonato de futebol freestyle
Test Drive
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
29. Campeonato de futebol freestyle
Colocando na
ordem certa
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
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. 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. Campeonato de futebol freestyle
Test Drive
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
33. Campeonato de futebol freestyle
Quem ganhou?
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
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. Campeonato de futebol freestyle
Perguntas Idiotas
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
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. O que aprendemos hoje?
●
Listas
●
Métodos:
●
sort
●
append
●
extend
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
38. Referências
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.
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETO HERMES