A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.

Apresentações semelhantes


Apresentação em tema: "Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012."— Transcrição da apresentação:

1 Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012

2 Relembrando... Tipos primitivos Simples (int, long, float, complex, string) Compostos Listas Tuplas Dicionários Conjuntos Definidos pelo usuário Classes

3 Tuplas Sequências imutáveis de elementos Funcionalidades semelhantes às listas Definição de uma tupla >>>T = (1,2,3) >>>T[0] 1 Tupla vazia () Parênteses são opcionais, se não provocar ambiguidade (10) inteiro (10,) Tupla 10, Tupla Se tiver apenas um elemento, é preciso colocar uma vírgula após o elemento.

4 Função tuple Transforma um elemento em uma tupla >>>tuple (abcd) (a, b, c, d) >>>tuple([1,2,3]) (1,2,3)

5 Utilização das tuplas Estruturas que demandam valores imutáveis Chaves de dicionários Funções com números variáveis de argumentos Formatação de texto

6 Formatação Usado para criar strings misturando texto e valores de variáveis Formato String_template % valor String_template contém texto e indicadores de variáveis %s string %d decimal %f float etc. Exemplo Decimal %d % 10 Decimal 10 Decimal %d float %f % (10,10) Decimal 10 float %s tirou nota %d % (João, 10) João tirou nota 10 Mais detalhes sobre formatação em

7 Módulo string Auxilia a manipulação de strings Principais funções da classe string String.find(substring) Retorna o índice da primeira aparição de substring em string String.join(sequência_de_strings) Retorna uma sequência de strings em uma string, utilizando como separador o valor de String Ex: /.join((1, 2, 3))

8 Módulo string String.replace(velho, novo) Substitui todas as instâncias de velho por novo em String String.split(separador) Retorna uma lista com as partes de String separadas de acordo com separador Ex: >>>a = Frase de teste para entender o split >>>a.split( ) [Frase, de, teste, para, entender, o, split]

9 Exercício Imagine que você está fazendo um teste que observe o que está acontecendo na rede através do comando ifconfig. O resultado do ifconfig é armazenado em uma string, mas você precisa apenas no número de pacotes que entraram e saíram da placa de rede. Faça uma programa que extraia esses dados do resultado de ifconfig e os guarde em uma lista [recebido, enviado]. Obs.: A saída do ifconfig é da seguinte forma: ifconfig eth0 Link encap:Ethernet HWaddr 14:da:e9:98:4f:1a inet addr: Bcast: Mask: inet6 addr: fe80::16da:e9ff:fe98:4f1a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets: errors:0 dropped:0 overruns:0 frame:0 TX packets:12809 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes: (37.3 MB) TX bytes: (1.7 MB) Interrupt:41 Base address:0xa000 lo Link encap:Local Loopback inet addr: Mask: inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:1034 errors:0 dropped:0 overruns:0 frame:0 TX packets:1034 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes: (151.9 KB) TX bytes: (151.9 KB)

10 Dicionários Estruturas semelhantes às listas, mas que: Não tem ordem O índice (ou chave) pode ser de qualquer tipo imutável Formato { chave1:conteúdo1,... chaveN:conteúdoN} O conteúdo associado a uma chave pode ser alterado A chave não pode ser alterada Ex: dicionario[chave]=Novo valor Novos valores podem ser acrescentados pela adição de uma chave ainda não definida

11 Listas x Dicionários Ex: Criando uma agenda com listas Criar duas listas, nome e telefone, que armazenam o nome e o telefone no mesmo índice Para acrescentar Joao com telefone 5019: nome+= Joao telefone+=5019 Para encontrar o telefone de Joao: Tel = telefone[nome.index[Joao]] Função de listas que diz o índice dado o valor buscado Nome tel Joao 5019 Maria 2030 Jose 1818 i=0 i=1 i=2 Adiciona elemento no fim da lista

12 Listas x Dicionários Ex: Criando uma agenda com dicionários Criar um dicionário cuja chave é o nome e o conteúdo é o telefone Para acrescentar Joao com telefone 5019: telefone[Joao] = 5019 Para encontrar o telefone de Joao: Tel = telefone[Joao] Nome tel Joao 5019 Maria 2030 Jose 1818 i=0 i=1 i=2

13 Exemplos

14 Função dict Usada para criar dicionários Argumentos Lista de tuplas (chave, conteúdo) Ou sequência de itens no formato chave=valor Nesse caso, as chaves TEM que ser strings sem aspas

15 Formatação de strings Para usar dicionários para formatar strings, usar a chave do dicionário entre parênteses, após o % >>> dic = { "Joao":"a", "Maria":"b" } >>> s = "%(Joao)s e %(Maria)s >>> s % dic 'a e b'

16 Uso do for Comando for pode ser usado para iterar sobre todas as chaves de um dicionário

17 Classe dict Principais métodos A=Dicionario.copy() Gera um novo dicionário com os mesmos pares chave:conteúdo Atenção: O conteúdo não é copiado, mas sim referenciado >>> x = {"Joao":[1,2], "Maria":[3,4]} >>> y = x.copy() >>> y ["Pedro"]=[5,6] >>> x ["Joao"] += [3] >>> print x {'Joao': [1, 2, 3], 'Maria': [3, 4]} >>> print y {'Pedro': [5, 6], 'Joao': [1, 2, 3], 'Maria': [3, 4]}

18 Classe dict Dicionario.clear() Remove todos os elementos do dicionário Atenção: >>> x = { "Joao":"a", "Maria":"b" } >>> y = x >>> x.clear() >>> print x,y {} >>> x = { "Joao":"a", "Maria":"b" } >>> y = x >>> x = {} >>> print x,y {} {'Joao': 'a', 'Maria': 'b'} Método clearAtribuição de dicionário vazio

19 Classe dict fromkeys(lista,valor) Retorna um novo dicionário com as chaves em listas associadas à valor Valor vale, por default, None Exemplos >>> {}.fromkeys([2,3]) {2: None, 3: None} >>> dict.fromkeys(["Joao","Maria"],0) {'Joao': 0, 'Maria': 0} >>>dict.fromkeys([(["Joao","Maria"]) {'Joao': None, 'Maria': None}

20 Classe dict get(chave,valor) Obtém o conteúdo de chave Não causa erro caso chave não exista: retorna valor Se valor não for especificado, chaves inexistentes retornam None

21 Classe dict Dicionario.has_key(chave) Retorna True se a chave existe no Dicionário e False, caso não exista Dicionario.items() Retorna uma lista com todos os pares chave/conteúdo do dicionário Dicionario.keys() Retorna uma lista com todas as chaves do dicionário Dicionario.values() Retorna uma lista com todos os valores do dicionário

22 Classe dict Dicionario.pop(chave) Retorna o valor de chave e remove o par chave/valor do dicionário Dicionario.popitem() Retorna e remove um par chave/valor aleatório do dicionário

23 Classe dict Dicionario.update(Dicionario2) Atualiza Dicionário com as chaves de Dicionario2 Atenção: Apresenta as mesmas questões da cópia de conteúdo que o update

24 Classe dict

25 Funções embutidas len(dicionario) Retorna o tamanho do dicionário key in dicionario Retorna True se a key pertence ao dicionário key not in dicionario Retorna True se a key não pertence ao dicionário

26 Exercício Imagine que você está fazendo um teste que observe o que está acontecendo na rede através do comando ifconfig. O resultado do ifconfig é armazenado em uma string, mas você precisa apenas no número de pacotes que entraram e saíram da placa de rede. Faça uma programa que extraia esses dados do resultado de ifconfig e os guarde em uma lista [recebido, enviado]. Essa lista deve ser inserida em um dicionario cuja chave é o nome da interface. Obs.: A saída do ifconfig é da seguinte forma: ifconfig eth0 Link encap:Ethernet HWaddr 14:da:e9:98:4f:1a inet addr: Bcast: Mask: inet6 addr: fe80::16da:e9ff:fe98:4f1a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets: errors:0 dropped:0 overruns:0 frame:0 TX packets:12809 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes: (37.3 MB) TX bytes: (1.7 MB) Interrupt:41 Base address:0xa000 lo Link encap:Local Loopback inet addr: Mask: inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:1034 errors:0 dropped:0 overruns:0 frame:0 TX packets:1034 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes: (151.9 KB) TX bytes: (151.9 KB)


Carregar ppt "Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012."

Apresentações semelhantes


Anúncios Google