Python: Voltando aos Containers

Documentos relacionados
Computação 1. Revisão Geral professor: Leonardo Carvalho

Nas aulas anteriores. Tipos nativos do Python: Tipos simples: inteiros, floats, booleanos. Tipos compostos: strings, listas, dicionários.

PROGRAMAÇÃO E PYTHON. Laboratórios de Informática João Paulo Barraca, André Zúquete, Diogo Gomes

Aula de hoje. Outras estruturas de dados. Teoria dos conjuntos. Teoria dos conjuntos. Conjuntos em Python. Conjuntos em Python

Computação 1 - Python Aula 7 - Teórica: Estrutura de Repetição com teste de parada: while 1/ 23

Tuplas. Prof. Alberto Costa Neto Programação em Python

Algoritmos e Estrutura de Dados Aula 05 Dicionários em Python

Estruturas de Decisão

Estruturas de Controle em c#

Padrão para a codificação em Python

Nesta aula... Parâmetros opcionais Atribuição abreviada Instruções break e continue Interrupção da execução. 1 Estudo desta disciplina.

Programação Estruturada e Orientada a Objetos

Exane de ICE-B, 26 de Junho de 2018 (Versão A)

Aula de hoje. Tipos de Dados e Variáveis. Constantes literais. Dados. Variáveis. Tipagem dinâmica. SCC Introdução à Programação para Engenharias

Coleções POO. Prof. Marcio Delamaro

Programação Orientada a Objetos

Coleções em Java. Prof. Gustavo Willam Pereira ENG10082 Programação II. Créditos: Prof. Clayton Vieira Fraga Filho

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

PRIMEIROS PASSOS COM PYTHON. Prof. Msc. Luis Filipe Alves Pereira 2015

Estruturas de Dados em Python

Lista Ligada. Nó de Lista Ligada

Python: Exceções, Iteradores e Geradores. Claudio Esperança

1 Da aula teórica ao Java

MAC2166 Introdução à Computação

Estruturas de controle Parte 1

Aula de hoje. Expressões. Expressões. Expressões. Exemplos. Programa em Python. SCC Introdução à Programação para Engenharias

Desenvolvimento de Aplicações Desktop

Computação 1 - Python Aula 7 - Teórica Estrutura de Repetição com Teste de Parada: while. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 18

Simulado de Linguagem de Programação Java

Computação 1. Revisão para a P1 professor: Leonardo Carvalho

Sintaxe da linguagem Java

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

Processamento da Informação Estruturas de seleção simples e composta

Listas, conjuntos e dicionários

Algoritmos e Estrutura de Dados Aula 02 Listas em Python

Processamento da Informação Teoria Funções

Tipos de dados e comandos POO

Computação 1 - Python Aula 12 - Teórica: Interação com o usuário e programa principal. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 25

Estruturas de Controle

Capítulo VIII. Tipo Abstracto de Dados Dicionário. Acesso por Chave

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

BCD29008 Banco de dados

Seleção Múltipla Laços (while, do-while, for) AULA 05

Allisson Barros 12/ Daniel Luz 13/ Leandro Bergmann 14/ Luiz Fernando Vieira 13/ Uriel Silva 12/

ACH5531 Introdução à Computação Estruturas de repetição

10 - Ciclo while. Ludwig Krippahl 4/3/2019 ICE-B-10 ICE-B

Fábio Rodrigues Jorge.

MAC2166 Introdução à Computação

1. Estude e implemente a classe Exemplo1 apresentada abaixo:

Luciano Ramalho setembro/2012. Objetos Pythonicos. Orientação a objetos e padrões de projeto em Python

TIPOS ESTRUTURADOS. Prof. Msc. Luis Filipe Alves Pereira 2015

Minicurso de Python Aula 2. Raphael Lupchinski Marcelo Millani

Computação 1 - Python Aula 9 - Teórica: Interferindo no fluxo de repetição: Break e Continue Laços Aninhados

Programação de Computadores

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

Programação de Computadores

Sequências - Tuplas. Sequências - Tuplas

Fundamentos de Lógica e Algoritmos. Aula 3.2 IDLE, Variáveis e Tipos. Prof. Dr. Bruno Moreno

Estrutura de Dados. Diego Silveira Costa Nascimento

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Aula de hoje. Listas. Sequências especiais. Introdução. Listas. Sequências. SCC Introdução à Programação para Engenharias

PIC - PROGRAMAÇÃO LINGUAGEM C. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR

Lista de Linguagens de Programação 16

Computação 1 - Python Aula 3 - Teórica: Tipos de dados, Strings, Estrutura Condicional 1/ 28

Listas e Tuplas. Vanessa Braganholo

Fundamentos da Programação

Aula passada. Aula passada... Sequências Funções puras e modificadores. Listas Tuplos

Minicurso de JavaScript PET Sistemas de Informação Segundo Dia Anthony Tailer. Clecio dos Santos. Rhauani Fazul.

MCG126 Programação de Computadores II

Fundamentos de Programação em Python

Diagramas Sintáticos

Capítulo 8. Estruturas de Controle no Nível de Sentença

Linguagem de Programação III

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Introdução à linguagem C++

Estruturas de dados funcionais

Computação 2. Aula 7 Teórica professor: Leonardo Carvalho

Programação I Aula 11 Mais sobre ciclos e iteração

Estruturas de controle no nível de sentença

Folha 4.2 Análise sintática ascendente

PHP: <?php echo("hello World");?> Printa Hello World na página do navegador, mais fácil do que no Java.

Aprendendo Python na Prática. Dante Moreira Zaupa Mestrando em Computação Aplicada Bolsista de Pesquisa

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

CIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO

Abaixo iremos pormenorizar cada um de seus atributos:

Introdução à Programação Aula 07. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

PYTHON LISTAS. Introdução à Programação SI1

APRENDIZAGEM DE MÁQUINA

Programação Funcional 9 a Aula Programas interativos

Instituto Superior de Engenharia de Lisboa

Introdução ao Python. Prof. Fabrício Olivetti de França Universidade Federal do ABC

Variáveis primitivas e Controle de fluxo

Introdução à Programação

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Programação Orientada a Objetos

Processamento da Informação Teoria. Laços aninhados

A Linguagem Python: Uma visão geral. Prof. Alberto Costa Neto Programação em Python

SCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica)

Transcrição:

Python: Voltando aos Containers Existe um vasto leque de funções que facilitam as operações com containers: listas, conjuntos e dicionários. len(c) items count Generic Operations on Containers min(c) max(c) sum(c) Note: For dictionaries and sets, these sorted(c) list sorted copy operations use keys. val in c boolean, membership operator in (absence not in) enumerate(c) iterator on (index, value) zip(c1,c2 ) iterator on tuples containing c i items at same index all(c) True if all c items evaluated to true, else False any(c) True if at least one item of c evaluated true, else False Specic to ordered sequences containers (lists, tuples, strings, bytes ) reversed(c) inversed iterator c*5 duplicate c+c2 concatenate c.index(val) position c.count(val) events count import copy copy.copy(c) shallow copy of container copy.deepcopy(c) deep copy of container modify original list Operations on Lists lst.append(val) add item at end lst.extend(seq) add sequence of items at end lst.insert(idx,val) insert item at index lst.remove(val) remove 8rst item with value val lst.pop([idx]) value remove & return item at index idx (default last) lst.sort() lst.reverse() sort / reverse liste in place >>> L=[4,6,1,7] >>> L [4, 6, 1, 7] >>> min(l) 1 >>> max(l) 7 >>> sorted(l) [1, 4, 6, 7] >>> L.pop() 7 >>> L [4, 6, 1] >>> 2*L [4, 6, 1, 4, 6, 1] >>> L.sort() >>> L [1, 4, 6]

Python: Voltando aos Containers Existe um vasto leque de funções que facilitam as operações com containers: listas, conjuntos e dicionários. len(c) items count Generic Operations on Containers min(c) max(c) sum(c) Note: For dictionaries and sets, these sorted(c) list sorted copy operations use keys. val in c boolean, membership operator in (absence not in) enumerate(c) iterator on (index, value) zip(c1,c2 ) iterator on tuples containing c i items at same index all(c) True if all c items evaluated to true, else False any(c) True if at least one item of c evaluated true, else False Specic to ordered sequences containers (lists, tuples, strings, bytes ) reversed(c) inversed iterator c*5 duplicate c+c2 concatenate c.index(val) position c.count(val) events count import copy copy.copy(c) shallow copy of container copy.deepcopy(c) deep copy of container modify original list Operations on Lists lst.append(val) add item at end lst.extend(seq) add sequence of items at end lst.insert(idx,val) insert item at index lst.remove(val) remove 8rst item with value val lst.pop([idx]) value remove & return item at index idx (default last) lst.sort() lst.reverse() sort / reverse liste in place >>> L [1, 4, 6] >>> L = L + [9,8,4] >>> L [1, 4, 6, 9, 8, 4] >>> L.remove(4) >>> L [1, 6, 9, 8, 4]

Python: Voltando aos Containers Trabalhando com conjuntos e seus operadores matemáticos. Operations on Sets Operators: union (vertical bar char) & intersection - ^ dinérence/symetric din. < <= > >= inclusion relations Operators also exist as methods. s.update(s2) s.copy() s.add(key) s.remove(key) s.discard(key) s.clear() s.pop() >>> A = {1,2,3,4,5} >>> A {1, 2, 3, 4, 5} >>> B = {4,5,6,7,8,9} >>> B-A {8, 9, 6, 7} >>> A-B {1, 2, 3} >>> A^B {1, 2, 3, 6, 7, 8, 9} >>> A&B {4, 5} >>> A B {1, 2, 3, 4, 5, 6, 7, 8, 9} >>> A<B False >>> A&B < A True

Python: Voltando aos Containers Dicionários (HashMap do Java). Uma associação eficiente entre chaves e valores. Por outro lado, um dicionário é uma extensão de um conjunto Operations on Dictionaries d[key]=value d.clear() d[key] value del d[key] d.update(d2) update/add d.keys() associations d.values() iterable views on d.items() keys/values/associations d.pop(key[,default]) value d.popitem() (key,value) d.get(key[,default]) value d.setdefault(key[,default]) value >>> precos= {} >>> precos= {'cafe':55} >>> precos {'cafe': 55} >>> precos['nata']= 65 >>> precos['cerveja']= 75 >>> precos {'cerveja': 75, 'nata': 65, 'cafe': 55} >>> precos['nata']= precos['nata'] + 2 >>> precos {'cerveja': 75, 'nata': 67, 'cafe': 55} >>> precos.keys() dict_keys(['cerveja', 'nata', 'cafe']) >>> precos.values() dict_values([75, 67, 55]) >>>

Python: Voltando aos Containers Dicionários (HashMap do Java). Uma associação eficiente entre chaves e valores. Por outro lado, um dicionário é uma extensão de um conjunto Operations on Dictionaries d[key]=value d.clear() d[key] value del d[key] d.update(d2) update/add d.keys() associations d.values() iterable views on d.items() keys/values/associations d.pop(key[,default]) value d.popitem() (key,value) d.get(key[,default]) value d.setdefault(key[,default]) value >>> precos {'cerveja': 75, 'nata': 67, 'cafe': 55} >>> for p in precos.keys():... print("o preço da", p, "é", precos[p])... O preço da cerveja é 75 O preço da nata é 67 O preço da cafe é 55 >>>

Python: Manipular Strings Para Strings dispomos de um vasto repositório de funcionalidades prontas a serem aplicadas. >>> s = "universidade da beira interior" >>> s.islower() True >>> len(s) 30 >>> s.capitalize() 'Universidade da beira interior' >>> s.title() 'Universidade Da Beira Interior' >>>

Python: Manipular Strings Para Strings dispomos de um vasto repositório de funcionalidades prontas a serem aplicadas. >>> s.ljust(40) 'universidade da beira interior ' >>> s.ljust(40,'.') 'universidade da beira interior...' >>> s.center(40,'.') '...universidade da beira interior... >>> s.split() ['universidade', 'da', 'beira', 'interior'] >>> s.split('a') ['universid', 'de d', ' beir', ' interior'] >>> s.split('er') ['univ', 'sidade da beira int', 'ior'] >>>

Python: Manipular Strings Exercício/exemplo:

Python: Manipular Strings Exercício/exemplo: bebidas= 'cerveja:75 cafe:50 agua:60 sumo:70' print('input: ', bebidas) print('output:') print(''.ljust(30,'=')) print('tabela DE PREÇOS') print(''.ljust(30,'-')) for b in bebidas.split() : np= b.split(':') print(np[0].ljust(20,'.'), np[1])

Python: Manipular Ficheiros Interessam-nos essencialmente ficheiros de texto.

Python: Manipular Ficheiros Interessam-nos essencialmente ficheiros de texto. Versão A ficheiro = open('uber.txt', 'r', encoding='utf8') linhastexto= ficheiro.readlines() ficheiro.close() for linha in linhastexto : print('#', linha) ficheiro = open('uber.txt', 'r', encoding='utf8') Versão B while True : linha= ficheiro.readline() if not linha : break print('##', linha) ficheiro.close()

Python: Manipular Ficheiros Interessam-nos essencialmente ficheiros de texto. Versão B ficheiro = open('uber.txt', 'r', encoding='utf8') while True : linha= ficheiro.readline() if not linha : break print('##', linha) ficheiro.close() Versão mais moderna e também a mais utilizada! Versão C with open('uber.txt', 'r', encoding='utf8') as ficheiro : for linha in ficheiro : print('###', linha) Quais as vantagens?

Python: Manipular Ficheiros Escrita em ficheiros. Exemplo: queremos gerar um ficheiro com N números aleatórios, gerados entre 0 e 99. Em cada linha devem ser escritos 10 números, separados por três espaços. Os números devem ficar alinhados à direita. 51 98 6 31 22 79 46 92 70 79 26 72 82 50 82 97 0 33 49 4 12 74 69 37 38 65 4 60 4 74 10 66 98 53 96 72 61 42 53 68 51 99 97 41 57 83 65 63 11 37 72 38 25 45 28 85 66 58 22 65 40 42 88 73 32 80 22 58 72 36 27 53 58 60 16 20 26 71 9 44 89 78 57 42 0 7 75 29 36 97 34 75 69 23 0 17 77 89 10 35

Python: Manipular Ficheiros Escrita em ficheiros. Exemplo: queremos gerar um ficheiro com N números aleatórios, gerados entre 0 e 99. Em cada linha devem ser escritos 10 números, separados por três espaços. Os números devem ficar alinhados à direita. import random as ran print('programa PARA ESCREVER N NÚMEROS ALEATÓRIOS NUM FICHEIRO') N= int(input('n=? ')) with open('aleatorios.txt', 'w') as ficheiro : for n in range(1,n+1) : x= ran.randint(0,99) ficheiro.write(str(x).rjust(4)) if n % 10 == 0 : ficheiro.write('\n')

Python: Definição e uso de Funções

Python: Definição e uso de Funções import random as ran def geradoraleatorios(fnome='aleatorios.txt', N=100): with open(fnome, 'w') as ficheiro : for n in range(1,n+1) : x= ran.randint(0,99) ficheiro.write(str(x).rjust(4)) if n % 10 == 0 : ficheiro.write('\n') if name == ' main ': print('gerador DE N NÚMEROS ALEATÓRIOS') nome= input('nome do ficheiro: ') try: N= int(input('n=? ')) except Exception: N= 100 if len(nome) > 0 : geradoraleatorios(nome,n) else: geradoraleatorios(n=n)

Python: Tratamento de Código Crítico Como podemos tratar blocos de instruções críticas? Exemplo: try: x = int(input('introduza um número inteiro: ')) except Exception as e: print('erro: isso não é um inteiro :(') quit()

Exercício em Python Crie um programa em Python que abre um ficheiro de texto e gera uma lista de todas as palavras únicas que lá ocorrem (vocabulário do ficheiro) e as respetivas frequências (número de vezes que ocorre) de cada palavra.