-
Gilberto Ribeiro de QueirozThales Sehn KörtingFabiano Morelli
Aula 07 – Introdução à Programaçãocom a Linguagem Python
08 de Abril de 2020
-
Tópicos
• Sequências: strings, tuplas e listas.
-
Sequências:Strings, Tuplas e Listas
-
Sequências• Uma sequência é um conjunto ordenado de n valores:
a0, a1, a2, ..., an-1
• Cada elemento de uma sequência é associado a um número: índice ou posição.
• O primeiro índice é o zero.
• Os três tipos básicos de sequências são:• Strings: sequência de caracteres.
• Tuplas: sequência imutável de valores (ou itens).
• Listas: sequência de valores (ou itens), que pode crescer, encolher, ou alterar elementos.
-
Sequências: Operações Comuns
Operador Descrição
x in s True se um item de s for igual a x, False caso contrário
x not in s False se um item de s for igual a x, True caso contrário
s + t Concatenação de s e t
s[i] i-th item de s
s[i:j] Parte da sequência no intervalo [i,j)
len(s) Comprimento da sequência s
min(s) Menor item da sequência s
max(s) Maior item da sequência s
s.index(x) Índice da primeira ocorrência de x
s.count(x) Número total de ocorrências de x em s
Para maiores detalhes veja a documentação oficial do Python.
https://docs.python.org/3/library/stdtypes.html
-
Strings: Sequência de Caracteres
nome = "Gilberto Ribeiro"letra = "b"
if letra in nome:print("Nome contém a letra 'b'!")
else:print("Nome não contém a letra 'b'!")
tamanho = len(nome)print(tamanho)
pos = nome.index("t")print(pos)
0102
03040506
0708
0910
-
Tuplas
• As tuplas são expressas através deuma sequência cujos itens são separadospor vírgula e, delimitados ou não porparênteses.
# Coordenadas do centróide da Cidade de São Paulo/Brasilcentroide_sp = (-46.7165, -23.6830)
print(centroide_sp)
print("longitude: {} latitude: {}".format(*centroide_sp))
print( len(centroide_sp) )
longitude = centroide_sp[0]latitude = centroide_sp[1]
0102
03
04
05
0607
-
Tuplas
• As tuplas podem ser aninhadas (nested):
# retângulo envolvente mínimo (rem) da Cidade de São Paulorem_sp = ( (-46.8254, -24.0084), (-46.3648, -23.6830) )
canto_inferior_esquerdo = rem_sp[0]
canto_superior_direito = rem_sp[1]
print("xmin:", canto_inferior_esquerdo[0])
0102
03
04
05
-
Tuplas
• Se tentarmos alterar um item de uma tupla, serálançada uma exceção:
>>> centroide_sp[1] = 45.0
Traceback (most recent call last):File "", line 1, in
TypeError: 'tuple' object does not support item assignment
-
Listas
cidades = ["São Paulo", "Rio de Janeiro","Belo Horizonte", "Ouro Preto"]
print(cidades)
# Ordenando a listacidades.sort()print(cidades)
# Gera uma nova lista "ordenada ao contrário"nova_lista = sorted(cidades, reverse=True)print(nova_lista)print(cidades)
0102
03
040506
07080910
Note que o método sort não criauma nova lista, ele realiza a alteraçãoin-place.
A função sorted cria uma nova lista a partir da lista de entrada.
-
Listas
cidades.append("São José dos Campos")print(cidades)
del cidades[1]print(cidades)
cidades.extend( ["Ouro Preto", "Mariana"] )print(cidades)
cidades.reverse()print(cidades)
0102
0304
0506
0708
-
Listas: outras formas de construçãol_letras = list( "Gilberto" )print(l_letras)
primos = list( (1, 2, 3, 5, 7) )print(primos)
seq1 = list( range(10) )print(seq1)
seq2 = list( range(3, 10) )print(seq2)
lista_vazia = []print(lista_vazia)
0102
0304
0506
0708
0910
-
Listas: List Comprehension
f_ident = [ x for x in range(0, 10) ]print(f_ident)
f_quad = [ x**2 for x in range(0, 10) ]print(f_quad)
f_exp = [ 2**x for x in range(0, 10) ]print(f_exp)
0102
0304
0506
-
Considerações Finais
-
Considerações Finais
• O tipo de dados lista é uma das estruturas maisutlizadas da linguagem Python.
• Cada item de uma lista é identificado por um índice.
• Listas são sequências mutáveis, isto é, podem encolherou incluir novos elementos.
• Demos os primeiros passos para utilizar um idioma muito comum da programação em Python: • List Comprehension.
-
Referências Bibliográficas
-
Referências Bibliográficas
• Common Sequence Operations. Acesso: Março, 2018.
• Mutable Sequence Types. Acesso: Março, 2018.
• Lists. Acesso: Março, 2018.
https://docs.python.org/3/library/stdtypes.htmlhttps://docs.python.org/3/library/stdtypes.htmlhttps://docs.python.org/3/library/stdtypes.html
-
Exercícios
-
Lista de valores: NDVI x nulos
• Dada a lista de valores de NDVIserie_ndvi = [0.3, -0.3, 0.2, None, 0.9, 0.8, 0.8, None, 0.2, 0.2]
• Apresente as seguintes informações:• Quantidade de valores inválidos (neste caso: None)
• Quantidade de valores válidos
-
List Comprehension: MODIS
• Uma imagem MODIS em geral armazena seus valores multiplicados por 10.000. Desta forma um valor 5.000 (inteiro) representa o valor real 0.5 (ponto flutuante) e ocupa menos espaço na memória
• Dada uma lista de valores MODISserie_modis = [7000, 6000, 3000, 3000, 10000, 2000, 5000, 500, 7500, 3000]
• Calcule e apresente a lista de valores reais (divididos por 10.000)