Baixe o app para aproveitar ainda mais
Prévia do material em texto
Computação II Revisão das Estruturas de Dados estudadas em Comp1 Strings Cadeias de caracteres Imutável Escritos com aspas simples ou duplas – Se começar com uma, termine com a mesma ● “Python” ou 'Python' ● Mas não “Python' Concatenadas com o operador “+” – “Python:” + “muito divertido” Melhor lida com raw_input do que input – Com raw_input não precisa digitar as aspas Strings Índices – Enderecam caracteres individuais de uma string, comecando do índice 0 ● linguagem = “Python” ● print linguagem[2] – t – O índice 0 corresponde ao primeiro caracter e o índice -1 ao último ● -2 ao penúltimo, -3 ao antepenúltimo e assim sucessivamente Strings Principais operacões – len(string) – retorna o tamanho de uma string – String1 in String 2 – retorna True se String1 é uma substring de String2 – fatia: retorna uma parte da string ● print linguagem[1:3] – 'yt' string.lower() – converte para minúsculo – string.upper() – converte para maiúsculo Strings – String.find('substring',inicio,fim) ● Retorna o índice de 'substring' em 'String' ● Inicio e fim indicam o intervalo de busca e são opcionais – String.replace(stringVelha, stringNova, qtd) ● Substitui a primeira string pela segunda. ● Caso qtd seja especifica, substitui esse número de strings. Caso contrário, substitui todas String – stringUnidora.join(sequencia) ● Junta a sequência em uma string, usando a string unidora entre cada elemento da sequência – string.split(separador) ● separa a string de acordo com o separador. ● Caso não seja especificado o separador, o espaco é assumido Strings – string .strip(caracter) ● Retorna a string sem caracteres iniciais ou finais que estejam em `caracter` ● Se caracter não for especificado, retira espacos em branco ● rstrip retira caracteres a direita ● lstrip retira caracteres a esquerda – String.count(substring) ● Retorna a quantidade de ocorrências de substring em String Exercícios Escreva programas que: – Leia uma string e retorne o número de palavras encontradas: ● a) Considere que serão digitadas apenas letras e sempre um único espaço entre palavras ● b) Considere os caracteres ‘.’, ‘,’, ‘;’ como separadores de palavras, além do espaço em branco. ● c) Considere que cada palavra pode estar separada por um ou mais caracteres de espaço. – Leia um texto e duas palavras. Substitua todas as ocorrências da primeira palavra pela segunda no texto – Leia uma palavra e verifique se são palíndromas – Leia uma frase e verifique se a mesma é palíndroma. Por exemplo, “Socorram-me, subi no ônibus em Marrocos” é palíndroma. Desconsidere caracteres de pontuacão, letras maiúsculas e letras com acento. Listas Sequência genérica de qualquer tipo de dado – Podem inclusive ter outras listas como elemento – Strings são sequências de caracteres Indexadas, fatiadas e concatenadas como strings – Mas são mutáveis, diferente das strings Listas Principais funcões e métodos – del lista[indice] – apaga elemento pelo índice ● A lista é alterada – elemento in lista– verifica se um elemento pertence a uma string – len(lista) – retorna a quantidade de elementos na string – min(lista) – retorna o elemento mínimo na string – max(lista) – retorna o elemento máximo na string – range(inicio,fim,incremento) – retorna uma PA em uma lista Listas Principais funcões e métodos – lista.append(elemento) – acrescenta um elemento no final da lista – lista.extend(lista2) – acrescenta os elementos de lista2 no final de lista – lista.count(elemento) – retorna a quantidade de vezes que o elemento aparece na lista – lista.index(elemento) – retorna o índice do elemento na lista ● Se elemento não está na lista, retorna erro – lista.insert(indice,elemento) – insere elemento na posicão índice na lista Listas Principais funcões e métodos – lista.pop(índice) – remove o elemento que está em índice ● Se índice não for informado, apaga o último elemento – lista.remove(elemento) – remove o primeiro elemento que corresponde ao parâmetro ● Se elemento não estiver na lista, retorna erro – lista.reverse() - inverte a lista – lista.sort() - ordena a lista Exercícios Escreva um programa que intercale os elementos de duas listas l1 e l2 – Exemplo: para l1 = [1,2,3] e l2 = ['a','b','c','d','e'], o programa deve computar a lista [1,'a',2,'b',3,'c','d','e'] Faça um programa que leia uma matriz de segunda or dem e calcule seu determinante # diagonal principal diagonal secundaria – OBS: uma matriz é apenas uma lista, com os elementos sendo outras listas – Para ler uma lista de listas, use for aninhados Exercícios Em uma universidade a fila do bandejão funciona da seguinte forma: – As filas começam a se formar pela manhã. Até às 11h, horário de abertura do restau- rante, alunos podem guardar lugar para no máximo 3 outros colegas, depois disso a i fila é congelada. Faça um programa que: – Leia uma fila de alunos (matrícula) até que seja entrada uma matrícula negativa (às 11h). – Imprima a final inicial. – Para cada aluno, pergunte para quantas pessoas ele está guardando lugar na fila e se ele irá continuar na fila (para esta pergunta ele deverá responder ‘S’ ou ‘N’). Leia a matrícula dos alunos a serem inseridos e remova aqueles que vão sair da fila. – Imprima a fila final, de acordo com ordem de chegada. – Imprima um relatório ordenado por matrícula dos alunos que usaram o bandejão. – Use uma única fila!!! Dicionários Suponha que precisamos representar uma agenda de telefones em Python – Qual estrutura de dados você usaria? Uma solução é ter uma lista de nomes e outra de telefones, onde o índice para o par (nome,telefone) é o mesmo em ambas as listas – Telefone de nome[i] armazenado em telefone[i] – Acrescentar “Joao” com telefone “2012-2232”: ● nome+=“Joao” ● telefone+=“2012-2232” – Para encontrar o telefone de “Joao”: ● tel = telefone[nome.index[“Joao”]] ● Parece complicado... Dicionários tornam isso mais fácil e eficiente telefone[“Joao”] = “20122232” tel = telefone[“Joao”] Dicionários Dicionários implementam mapeamentos entre pares de valores – O primeiro elemento do par é a chave e o segundo é o conteúdo – dicionario = {chave1:conteúdo1,...,chaveN:conteúdoN} – No Python, a chave deve ser uma string ou valor númerico e o conteúdo pode ser qualquer coisa Variáveis são acessadas com colchete, mas o “índice” agora é a chave e não uma posicão Novos elementos são acrescentados atribuindo um valor a um conteúdo (e alterados também) – agenda[“Maria”] = “2349-9877” Dicionários Não há ordem definida entre os pares chave/conteúdo de um dicionário >>> meses = {"janeiro":31, "fevereiro":28, "marco":31, "abril":30, "maio":31, "junho":30, "julho":31, "agosto":31, "setembro":30, "outubro":31, "novembro":31, "dezembro":31 } >>> for i in meses: print i, meses[i] novembro 31 marco 31 julho 31 agosto 31 fevereiro 28 junho 30 dezembro 31 janeiro 31 abril 30 ... Dicionários Principais funções e métodos – chave in dicionário – retorna True se existir a chave no dicionário – len(dicionário) – quantos pares estão no dicionário – dicionário.keys() - retorna uma lista com todas as chaves do dicionário – dicionário.values() - retorna uma lista com todas os valores de conteúdo do dicionário – dicionário.has_key(chave) - Verifica se a chave está na dicionário (apenas em Python 2.7) Dicionários – dicionário.pop(chave) – remove o par chave/conteúdo do dicionário – dicionário.update(dicionário2)– atualiza dicionário com os elementos de dicionário2 Exercício Uma estação meteorológica registra a temperatura ocorrida em uma cidade a cada hora. Faça um programa que: – Leia as temperaturas de uma semana no seguinte formato: ● dia, hora, temperatura. – A leitura termina com um dia inválido. – Use um dicionário cuja chave são os dias da semana. Cada dia da semana deve ser mapeado para um outro dicionário, que por sua vez mapeia horas em temperaturas. – O programa deve imprimir a maior temperatura para cada dia da semana. – O programa deve informar para cada hora consultada, a maior temperatura ocorrida na semana, enquanto um valor de hora for válido Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20
Compartilhar