Python Listas e Strings. Listas 23/11/2016. Por que usar listas? Listas. Listas - Solução. Listas - Problema

Documentos relacionados
Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

Capítulo 1. Importação de Dados de Instituições Financeiras - Arquivo TXT 3

ENG1000 Introdução à Engenharia

ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva

PROGRAMAÇÃO DE COMPUTADORES

Estruturas de Repetição

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

Orientação a Objetos

ISS Eletrônico. Formato de Arquivos para Transmissão de Documentos Declarados através do aplicativo OFFLINE. Extensão do Arquivo JUNHO2006.

Aula 11: Desvios e Laços

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

Unidade 1: O Computador

Assessoria Técnica de Tecnologia da Informação - ATTI. Projeto de Informatização da. Secretaria Municipal de Saúde do. Município de São Paulo

Algoritmos APRENDENDO A PROGRAMAR COM C#

2 Segmentação de imagens e Componentes conexas

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

Simulado de Linguagem de Programação Java

Objetivo do Portal da Gestão Escolar

Carlos de Salles Soares Neto Segundas e Quartas, 17h40 às 19h10

Fundamentos de Programação. Diagrama de blocos

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Conteúdo programático

Graphing Basic no Excel 2007

Programação Orientada a Objetos SANTOS, Rafael

Introdução ao. Script. Baltazar Tavares (Psycho Mantys)

Lista de Exercícios 1

CRIAÇÃO DE TABELAS NO ACCESS. Criação de Tabelas no Access

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

OPERAÇÕES COM FRAÇÕES

UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS

Curso C: Ponteiros e Arrays

Prova de Fundamentos de Bancos de Dados 1 a Prova

8 Crie um pequeno sistema para controle automatizado de estoque, com os seguintes registros:

Modelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves

Gestão de Sistemas Operacionais I

HEMOVIDA (CICLO DO SANGUE - Gerenciamento de estoque para grandes eventos)

MANUAL DO PUBLICADOR

Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios

TUTORIAL MATLAB Victor Breder 2016

MDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases)

Linguagem de Programação C. Fluxo de Saída Padrão. Linguagem de Programação C. printf. Fluxo de Saída Padrão. Algoritmos e Lógica de Programação

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

Sistemas Numéricos. Tiago Alves de Oliveira

Manual de Utilização. Ao acessar o endereço chegaremos a seguinte página de entrada: Tela de Abertura do Sistema

Curso de Formação de Oficiais Conhecimentos Específicos ENGENHARIA DE COMPUTAÇÃO CADERNO DE QUESTÕES

Caso tenha alguma dificuldade nesta etapa, procure um técnico de informática para auxiliá-lo.

Este Procedimento Operacional Padrão define as etapas necessárias para o processo de inventário em um estoque, filial ou loja no APLWeb.

Introdução a Administração de Sistemas GNU/Linux

tipo e tamanho e com os "mesmos" elementos do vetor A, ou seja, B[i] = A[i].

Oracle Database 10g: Fundamentos de SQL e PL/SQL

Banco de Dados I. Prof. Edson Thizon

Vetores, Matrizes e String

TCI Sistemas Integrados

FastCube 2.0 Programmer Manual

Inteligência Artificial

Gerenciador de Ambiente Laboratorial - GAL Manual do Usuário Módulo Controle de Qualidade Analítico

Administração Portal Controle Público

ACCESS ) Introdução. 2) Abrindo um banco de dados. 3) A Janela do Access-2007

DRE DEMONSTRAÇÃO DO RESULTADO DO EXERCÍCIO EMITIR UMA D.R.E NO SISTEMA DOMÍNIO CONTÁBIL

Introdução à orientação a objetos

PLANIFICAÇÃO INTRODUÇÃO ÀS TECNOLOGIAS DE INFORMAÇÃO BLOCO I

INF1007: Programação 2 9 Tipos Abstratos de Dados. (c) Dept. Informática - PUC-Rio 1

GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA SOCIEDADE PONTO VERDE

Rateio por Despesas por Contas Contábeis

1. REFERÊNCIA DE MACROS DO MICROSOFT ACCESS AÇÕES DE MACRO E OS PARÂMETROS DE CADA UMA :

,QVWDODomR. Dê um duplo clique para abrir o Meu Computador. Dê um duplo clique para abrir o Painel de Controle. Para Adicionar ou Remover programas

Portal de Sistemas Integrados. Manual do Usuário. Versão: 1.0

SISTEMA CAÇA-TALENTOS MANUAL DE OPERAÇÃO PERFIL SECRETARIA

COMO CRIAR UM PEDIDO DE COMPRAS

Manual do Usuário. VpetConverter Ferramenta para adequação de documentos para Petições Eletrônicas.

Banco de Dados. Banco de Dados Parte 2. Alcides Pamplona Alcides Pamplona Linguagem de Programação CESBD 2010

Método de ordenação - objetivos:

Manual do Formatador Kfloppy

Árvores Parte 1. Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos

Processamento Digital de Sinais. Conversão A/D e D/A. Prof. Dr. Carlos Alberto Ynoguti

Solicitação de Cadastramento de Instituição de Pesquisa ou Empresa (a partir da versão

UTILIZAÇÃO DE RECURSOS AVANÇADOS DO EXCEL EM FINANÇAS (PARTE III): GERENCIAMENTO DE CENÁRIOS

UNIVERSIDADE ESTADUAL PAULISTA. Apostila Pascal Ed Prof. Dr. Galeno José de Sena DMA/FEG CAPÍTULO 8

DK105 GROVE. Temperatura e Umidade. Radiuino

Guia do Administrador de Licenças de Usuários Autorizados do IBM SPSS Modeler IBM

2. ALGORITMOS. Unesp Campus de Guaratinguetá

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

Capítulo 9 - Imagens. Imagens

Classificação de Ativo Orçamento e Provisão de Despesa

INFORMÁTICA PARA GESTÃO II Curso Superior de Gestão de Marketing

Criando scanner para dectar BackupExec vulneráveis ao exploit do Metasploit. Inj3cti0n P4ck3t

CRIANDO MAPAS TEMÁTICOS COM SETORES CENSITÁRIOS DE SÃO PAULO

MS1122 v3.0 Instalação e Considerações Importantes

4 Sistema Computacional:

Cadeias de Caracteres

LEUCOTRON EQUIPAMENTOS LTDA ROTEIRO DE INTERLIGAÇÃO SIP ACTIVE IP COM REGISTRO

Introdução à Informática

Auxílio Estudantil Fase de análise

Universidade Federal de Goiás Campus Catalão Departamento de Matemática

O sistema gestor já contem uma estrutura completa de categorias que são transferidas automaticamente para cada empresa nova cadastrada.

Expressões Lógicas e Aritméticas. Professora Kátia Adriana Alves Leite de Barros katia.barros@pitagoras.com.br

Registro de Retenções Tributárias e Pagamentos

Transcrição:

Python Listas e Strings Prof. Paulo Henrique Ribeiro Gabriel (Com base no material do Prof. André Backes) Listas Por que usar listas? Listas As variáveis declaradas até agora são capazes de armazenar um único valor por vez. Sempre que tentamos armazenar um novo valor dentro de uma variável, o valor antigo é sobrescrito e, portanto, perdido A lista é a forma mais familiar de dados estruturados Basicamente, uma lista é uma sequência de elementos, onde cada elemento é identificado por um índice Diferente dos arrays usados em outras linguagens, em Python os elementos de uma lista podem possuir qualquer tipo Listas - Problema Listas - Solução Imagine o seguinte problema leia as notas de uma turma de cinco estudantes e depois imprima as notas que são maiores do que a média da turma Um algoritmo para esse problema poderia ser o mostrado a seguir

Listas Listas O algoritmo anterior apresenta uma solução possível para o problema apresentado Porém, essa solução é inviável para grandes quantidades de alunos Imagine se tivéssemos de processar os dados de 00 alunos Para 00 alunos, precisamos de: Uma variável para armazenar a nota de cada aluno: 00 variáveis Um comando de leitura para cada nota: 00 input() Um somatório de 00 notas Um comando de teste para cada aluno: 00 comandos if Um comando de impressão na tela para cada aluno: 00 print() Listas - Definição Listas - declaração As variáveis têm relação entre si todas armazenam notas de alunos Podemos declará-las usando um ÚNICO nome para todos os 00 alunos notas = conjunto de 00 números acessados por um índice isso é uma lista! Existem várias maneiras de criar uma lista Uma das mais simples é definir os elementos da lista entre colchetes Os elementos da lista devem ser separados por vírgulas Se nenhum elemento for definido, temos uma lista vazia Também podemos usar a função range() para gerar uma lista de valores 0... 99 notas Listas - declaração Lista = variável Em uma lista, os elementos são acessados especificando o índice desejado entre colchetes. A numeração começa sempre do zero Isto significa que uma lista de 4 elementos terá índices de 0 a 3: compras[0], compras[], compras[2] e compras[3] A função len() retorna o número de elementos da lista Cada elemento da lista tem todas as características de uma variável e pode aparecer em expressões e atribuições (respeitando os seus tipos) notas[2] = x + notas[3] if notas[3] > 60: Ex: somar todos os elementos de uma lista 0 2 3 Miojo Ovo Leite Pão compras 2

Percorrendo uma lista Percorrendo uma lista Podemos usar um comando de repetição (preferencialmente o for) para percorrer a lista de 2 formas Forma Percorrer os índices e elementos Podemos usar um comando de repetição (preferencialmente o for) para percorrer a lista de 2 formas Forma 2 Percorrer apenas os elementos. Isso evita manipular explicitamente o índice Exemplo Exemplo Listas - Problema Listas - Solução Voltando ao problema anterior leia as notas de uma turma de cinco estudantes e depois imprima as notas que são maiores do que a média da turma Um algoritmo para esse problema usando listas: Listas - Solução Exercício Se ao invés de 5, fossem 00 alunos?: Exercício Para uma lista contendo 5 números inteiros, formular um algoritmo que determine o maior elemento desta lista 3

Exercício - solução Exercício Para uma lista contendo 5 números inteiros, formular um algoritmo que determine o maior elemento desta lista As listas suportam acesso a sub-listas, isto é, a certos conjuntos de índices lista[i:j] seleciona a sub-lista dos índices i até j- lista[i:] seleciona a sub-lista dos índice i até o final lista[:j] seleciona a sub-lista do início até o índice j- lista[i:j:k] seleciona a sub-lista dos índices i até j-, indo de k em k i, i+k, i+2k,..., j- Selecionando sub-listas de elementos Listas são objetos mutáveis Podemos acessar qualquer elemento ou sequência de elementos e modificálos Os elementos de uma lista podem possuir qualquer tipo Concatenação e repetição de listas Podemos também associar o valor de cada posição da lista a uma variável sem precisar especificar os índices usando o recurso de unpacking Basta definir uma lista de variáveis, entre colchetes, que receberá o conteúdo da lista Podemos unir/concatenar duas listas para formar uma nova usando o operador de + Podemos criar uma lista a partir da repetição de outra usando o operador de * 4

Removendo elementos da lista Copiando uma lista Podemos remover um ou mais elementos de uma lista de duas maneiras Usando o operador del Atribuindo uma lista vazia àquela posição A operação de atribuição não cria uma cópia do objeto! Em Python, listas são objetos. Se atribuirmos uma lista a outra, ambas irão se referir ao mesmo objeto lista lista 33 4 6-2 378972 Copiando uma lista Copiando uma lista Para copiar uma lista, o correto é utilizar [:] na operação de atribuição lista 33 4 6-2 3699860 A operação de atribuição não cria uma cópia do objeto! Em Python, listas são objetos. Se atribuirmos uma lista a outra, ambas irão se referir ao mesmo objeto lista 33 4 6-2 374572 Procurando um elemento na lista Métodos sobre listas O operador in permite verificar se um determinado elemento está presente ou não em uma lista Uma lista é uma classe e, portanto, possui diversos métodos já definidos Um dos jeitos mais simples de manipular listas é utilizar os métodos que já fazem parte dela Esses métodos permitem executar diversas tarefas Ordenação, inserção, remoção, etc Esses métodos modificam o conteúdo original da lista 5

Métodos sobre listas Métodos sobre listas Forma geral de uso dos métodos lista.nome-método() Alguns métodos sort(): ordena os elementos da lista append(x): insere um elemento x no final da lista insert(pos,x): insere um elemento x na posição pos remove(x): remove o elemento x da lista pop(pos): remove e retorna o elemento da posição pos Exemplos Lista aninhadas Lista aninhadas Uma lista pode armazenar qualquer tipo de dado As listas podem inclusive conter outras listas Podemos assim representar tabelas ou matrizes 0 0... 49 99 Para criar uma lista aninhada, basta definir cada elemento como uma nova lista Os elementos são acessados especificando um par de colchetes e índice para cada dimensão da lista A numeração começa sempre do zero 0 0 oi 2 3... 4 5 6 mat[0][] 99 2 7 8 9 Lista aninhadas Lista aninhadas Podemos também incluir novas linhas e colunas em cada lista Recomenda-se, neste caso, usar os métodos ao invés do operador de concatenação Nas listas aninhadas, não é necessários que as linhas tenham sempre o mesmo número de colunas Podemos remover um ou mais elementos de uma lista aninhada de maneira similar as listas tradicionais índice: a linha inteira é removida 2 índices: o elemento da linha e coluna é removido 6

Lista aninhadas Todas as operações feitas em listas aninhadas devem considerar o fato de que temos agora uma lista dentro de outra Strings Definição Definição Cadeia de caracteres ou String Sequência de caracteres adjacentes na memória Permite representar palavras ou frases dentro do computador Em outras palavras, strings são listas. A diferença é que cada posição da lista contém um único caractere Na inicialização de uma string podemos usar aspas duplas ou aspas simples O tipo de uma string é a classe str Definição Podemos utilizar 3 aspas simples na inicialização de uma string. Neste caso, será possível criar uma string contendo mais de uma linha As quebras de linha também serão armazenadas dentro da string. Podemos tratar uma string como uma entidade única Mas também podemos acessar seus caracteres individualmente usando colchetes e o índice da posição 0 2 3 4 5 P y t h o n 7

Tamanho da string A função len() retorna o tamanho de uma string Neste caso, a função retornará 6, que é o número de caracteres na palavra Não podemos acessar um índice da string que seja maior ou igual ao tamanho da string Os índices dos caracteres de uma string sempre começam em ZERO e vão até TAMANHO- 0 2 3 4 5 P y t h o n 0 2 3 4 5 P y t h o n Podemos utilizar índices negativos para acessar os caracteres de uma string Neste caso, a contagem começa do último caractere da string 0 2 3 4 5 P y t h o n -6-5 -4-3 -2 - Como nas listas, as strings também suportam acesso a sub-strings ou sub-cadeias de caracteres texto[i:j] seleciona a sub-cadeia dos índices i até j- texto[i:] seleciona a sub-cadeia dos índice i até o final texto[:j] seleciona a sub-cadeia do início até o índice j- texto[i:j:k] seleciona a sub-cadeia dos índices i até j-, indo de k em k i, i+k, i+2k,..., j- Percorrer uma string Selecionando sub-strings ou sub-cadeias de caracteres Podemos percorrer uma string de duas formas Usando um ciclo sobre os índices Usando um ciclo sobre a sequência 8

Concatenação de string Concatenação de string Podemos unir/concatenar duas string para formar uma nova de duas maneiras Usando o operador de soma + Separando as strings por vírgula no momento da impressão (um espaço será automaticamente inserido entre elas) Podemos acessar os caracteres individualmente de uma string, mas não podemos modificá-los Felizmente, podemos construir uma outra string via concatenação Sequências de escape Sequências de escape Também chamados de códigos de barra invertida Permitem o envio de caracteres de controle não gráficos para dispositivos de saída As sequências de escape são executas sempre que uma barra invertida é encontrada Para evitar que as sequências de escape funcionem, basta definir a string como uma Raw String Para isto basta preceder a string com r ou R Código Comando \n nova linha \t tabulação \v tabulação vertical \b retrocesso \ aspas simples \ aspas duplas \\ barra invertida Formatação de strings Formatação de strings Também é possível realizar a formatação de string utilizando o operado % Forma geral string-a-ser-formatada % (lista-de-valores) Todo conteúdo da string da esquerda precedido por um % é substituído por um valor a direita (entre parênteses) Na string da esquerda, o conjunto de caracteres depois do % define o tipo de formatação a ser executada Código Tipo de formatação %c caractere %s string %d inteiro %u inteiro sem sinal %f reais (ponto flutuante) %.Nf reais com N casas decimais %% símbolo de % 9

Manipulando strings Manipulando strings Podemos procurar uma string menor dentro de uma string maior Ex: palavra dentro de uma frase Para isso, basta utilizar o operador in. Forma geral string in string2 O resultado será True se a string existir dentro da string2, e False, caso contrário Procurando uma string menor dentro de uma string maior No caso, as string devem estar escritas exatamente iguais Exemplos Manipulando strings Manipulando strings Também podemos utilizar os operadores relacionais (==,!=, <, <=, >, >=) para comparar duas string A comparação é feita usando a ordem lexicográfica (i.e. ordem do dicionário) Nas comparações, letras maiúsculas e minúsculas são consideradas diferentes Exemplos Exemplo Manipulando strings Métodos sobre strings Essa diferença entre maiúsculas e minúsculas ocorre pois a comparação é feita pelos códigos numéricos dos caracteres Função ord(): código numérico de um caractere Função chr(): caractere de um código numérico Uma string é uma classe e, portanto, possui diversos métodos já definidos Um dos jeitos mais simples de manipular strings é utilizar os métodos que já fazem parte da string Esses métodos permitem executar diversas tarefas Conversão maiúsculo/minúsculo, localizar e substituir substrings, etc Esses métodos nunca modificam o conteúdo original 0

Métodos sobre strings Métodos sobre strings Forma geral de uso dos métodos Objeto-string.nome-método() Alguns métodos lower(): converte para minúsculo upper(): converte para maiúsculo replace(c,c2): troca os caracteres c por c2 strip(): remove espaços do início e fim split(): separa uma string por espaços e devolve uma lista de strings split(ch): separa uma string usando o caractere ch e devolve uma lista de strings Exemplos