Minicurso de Python Aula 2. Raphael Lupchinski Marcelo Millani

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

1/ 26. Computação 1 - Python Aula 1 - Prática: Primeiros Passos - Função

Computação I - Python Aula 1 - Prática: Primeiros Passos- Função

1/ 23. Computação 1 - Python Aula 1 - Prática: Primeiros Passos - Função

Arquivos. Introdução à Programação SI1

Processamento da Informação Teoria. Laços

Linguagem Python. Processamento Estatístico da Linguagem Natural. Barra invertida em strings. Strings. Aspas triplas. Operações com Strings

Introdução à linguagem Python Minicurso Aula 1 Prof.º Alexandre C. Andreani

Estruturas de Dados em Python

Preparação para Maratona de Informática PYTHON

Python Funções. Introdução à Programação SI1

Laboratório de Programação 1 Aula 07

Minicurso de Linguagem de Programação Python.

Algoritmos e Estrutura de Dados Aula 02 Listas em Python

Computação I - Python

Listas e Tuplas. Vanessa Braganholo

Nesta aula... Iteração indefinida. 1 Decisões em Python. 2 Funções lógicas. 3 Recursão. 4 Iteração. 5 Ciclo for ou while?

Linguagem Python. Inteligência Artificial. Características de Python. Importando módulos. Módulos. Usando Python no modo interativo

Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre.googlepages.

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

Computação 1 - Python Aula 2 - Teórica. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 39

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

Vetores. Vanessa Braganholo

Arquivos O QUE É, COMO LER E MANIPULAR

Computação 1 - Python Aula 10 - Teórica: Estrutura de Dados - Dicionário. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 18

Computação 1 - Python 1/ 41

AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa

Python Funções. Introdução à Programação SI1

Listas, conjuntos e dicionários

Processamento da Informação Teoria. Coleções: Listas

Programação Python. Nesta aula... 1 Programação. 2 Python. Operadores e Operandos Variáveis, Expressões, Instruções Funções Ciclos Comentários

Listas são dinâmicas

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

Computação 1 - Python Aula 8 - Teórica: Estrutura de Repetição : for 1/ 10

INTRODUÇÃO À COMPUTAÇÃO - RESUMO E EXERCÍCIOS* P2

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

Introdução à Engenharia ENG1000

C A P I T U L O 2 S I N T A X E B Á S I C A - V A R I Á V E I S E C O N S T A N T E S E M P H P

Compiladores II. Fabio Mascarenhas

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

Minicurso de Python Aula 1. Raphael Lupchinski Marcelo Millani

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

Python para quem sabe Python

Computação 1 - Python Aula 1 - Prática: Primeiros Passos - Função 1/ 19

Python: Listas. Claudio Esperança

INFORMÁTICA PARA ENGENHARIA MODULARIZAÇÃO E ORGANIZAÇÃO DE CÓDIGO

Variáveis e instruções de repetição

Python para quem sabe Python

Algoritmos e estrutura de dados

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

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

Nesta aula... Diagramas da stack. Recursão. 1 Funções. 2 Valores booleanos e condicionais. 3 Execução condicional e recursão

Python 3.x Estrutura de Repetição while

Módulo: PYTHON. Felipe Oliveira

MCG126 Programação de Computadores II

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

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

Programação de Computadores LAÇOS E LISTAS

Fundamentos de Programação em Python

Introdução à Computação - aulas 01 e 02 -

1 Expressões, valores e tipos 1. 2 Variáveis e atribuições 5. cálculo de expressões segue a estrutura de parênteses e as prioridades dos operadores

Computação II (MAB 225)

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

24/09/2014. Prof. André Backes

Minicurso de Linguagem de Programação. Python. Python. Grupo PET-Tele, Universidade Federal Fluminense. 23 de agosto de 2011

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

Informática para Ciências e Engenharias 2013/14. Teórica 7

Python: Funções. Claudio Esperança

Estruturas de dados funcionais

Python 3.x Estrutura de Repetição for Estrutura de Decisão if then else

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

Computação 1 - Python Aula 12 - Teórica. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 22

Computação I: Linguagem de Programação Python

Programação I Aula 3 Primeiros programas

Aula de hoje. Comandos. Comandos simples. Comandos. Comandos de controle. Bloco de comandos. SCC Introdução à Programação para Engenharias

Comandos em C (cont.)

Sumário. Universidade Federal Fluminense Introdução ao Python PET-Elétrica UFF

Introdução à Programação / Programação I

Arquivos. Vanessa Braganholo

Aula 28: Arquivos de texto

MC-102 Aula 02 Shell Interativa, Programa Básico, Variáveis, Atribuições, Tipos Simples. Instituto de Computação Unicamp

Introdução à Programação Aula 13 Manipulação de ficheiros

MAC2166 Introdução à Computação

Introdução à Programação Aula 3 Primeiros programas

Lista de Linguagens de Programação 16

Lógica de Programação com Python

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Informática para Ciências e Engenharias 2014/15. Teórica 7

Programação de Computadores

Computação II (MAB 225)

Listas: Sequências Mutáveis

Introdução à Programação / Programação I

Computação 1 - Python Aula 4 - Teórica Variáveis e Atribuição, Strings. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 30

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

Computação I - Python Aula 4 - Teórica: Variáveis e Atribuição, Strings

Programação I Aula 13 Manipulação de ficheiros

Desenvolvimento de Sistemas para WEB Site:

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

Transcrição:

Minicurso de Python Aula 2 Raphael Lupchinski Marcelo Millani

Recapitulando Na última aula vimos a sintaxe básica de Python: Criar escopo utilizando : Identação baseada em 4 espaços Expressões matemáticas Variáveis Strings Indexação Listas Operadores booleanos If, For, While Funções

Continuando... Funções Para fazer com que uma função retorne um valor, basta utilizar return, seguido de rua lista de valores. Podemos fazer argumentos defult na definição de uma função. 1 def dividepordoisououtro(a,b=2): 2 return a/b Quais seriam os resultados de: >>> dividepordoisououtro(2) >>> dividepordoisououtro(10,5)

Continuando... Funções Para fazer com que uma função retorne um valor, basta utilizar return, seguido de rua lista de valores. Podemos fazer argumentos defult na definição de uma função. 1 def dividepordoisououtro(a,b=2): 2 return a/b Quais seriam os resultados de: >>> dividepordoisououtro(2) # 1 >>> dividepordoisououtro(10,5) # 2

Argumentos default Os valores default são configurados no momento de suas definições: >>> a = 5 >>> def func(param=a):... Print param >>> a = 20 >>> func() # quanto isso deveria retornar? É possível escolher o valor default na chamada da função: >>> func(param=20) 20

Funções lambda Python dá suporte para funções sem nome específico, conhecidas como função lambda Ficam fortemente atreladas às funções map(), reduce() e filter() >>> def f(x): return x**2 >>> f(8) 64 >>> g = lambda x: x**2 >>> g(8) 64

Docstrings Todos sabemos que documentação de código é fundamental. Python oferece uma ferramenta para facilitar o armazenamento de documentação. >>> def MinhaPotencia(a,b)... Essa função tem a seguinte propriedade:... Retorna o valor da exponenciação a^b.... return a**b >>> print MinhaPotencia(1,2). doc Essa função tem a seguinte propriedade: Retorna o valor da exponenciação a^b.

Mais sobre listas... Alguns comandos úteis pra se trabalhar com listas: lista.append(elemento) # insere elemento no final de lista. lista.extend(outralista) # insere todos os elementos de outralista no final de lista. lista.insert(i,elemento) # insere elemento no índice i da lista. lista.remove(elemento) # remove a primeira ocorrência de elemento na lista

Mais sobre listas... lista.pop(~i) # remove o último elemento de lista, ou remove o i-ésimo elemento. lista.index(elemento) # índice da primeiro ocorrência de elemento em lista. lista.count(elemento) # conta o número de repetições de elemento em lista lista.sort() # ordena os elementos de lista (podem existir tipos variados). (Essa é a prova de que Python é um martelo e tudo é prego! ) lista.reverse() # coloca todos os elementos na ordem reversa

filter(), map() e reduce() São funções bem úteis para se trabalhar com listas. filter(function,list) Filter utiliza uma função booleana (eg. a > 3) e filtra para uma nova lista somente os elementos que geraram true. >>> def f(x): return x % 2 == 0 and x % 3 == 0 >>> f = lambda x: x % 2 == 0 and x % 3 == 0 >>> filter(f, range(2,25)) [6, 12, 18, 24]

filter(), map() e reduce() map(function,list) Map itera sobre os elementos de list e aplica a cada um um deles function, gerando uma nova lista com os resultados. >>> def square(x): return x*x >>> g = lambda x: x*x >>> map(square, range(2,10)) >>> map(g,range(2,10)) [4, 9, 16, 25, 36, 49, 64, 81]

filter(), map() e reduce() reduce(function,list) Reduce aplica uma função nos 2 primeiros elementos de uma sequência. Na próxima iteração, são utilizados o terceiro elemento e o resultado anteriormente obtido, e assim por diante. >>> def add(x,y): return x+y >>> h = lambda x, y: x + y >>> reduce(add, range(10)) >>> reduce(h,range(10)) 45 Dada a utilidade dessa função, foi embutida na biblioteca padrão a função sum(lista).

Exercício Faça 2 programas que digam a média aritmética dos elementos de uma lista. Programa 1: fazer no estilo C (percorrer os elementos e calcular a média. Use for nesse caso). Programa 2: usar os açúcares sintáticos de Python (sum(), len(), etc...). Analise as diferenças de programar dos 2 modos.

List comprehensions Podemos, em alguma situação, querer criar uma lista a partir de outras listas ou regras. Essa sintaxe é familiar? {x x ϵ A ^ x > 0} # cria uma lista tal que os elementos estão em A e são maiores que zero. Em Python podemos fazer algo semelhante: list = [x for x in A if x > 0] # sendo A uma lista (um range(n) por exemplo)

Exercício Faça um programa que recebe como entrada uma lista de elementos pares (utilizando filter() ) e, usando list comprehension, gera uma nova lista com aqueles elementos que forem divisíveis por 3. Input: range(20) Output: [0, 6, 12, 18]

Deletando variáveis Basta usar a diretiva del. >>> a = [2, 5, 78, 12] >>> del a[1] >>> a [2, 78, 12] >>> del a[:] >>> a [] >>> del a # apaga a completamente >>> a NameError: name a is not defined

Conjuntos Python nos eferece suporte para trabalhar com sets. >>> a = set( computacao ) >>> b = set( computador ) >>> a #mostra os caracteres únicos em computacao set([ a, c, m, o, p, u, t ]) >>> b - a # caracteres em b e não em a set([ r, d ]) >>> a b # união >>> a & b # intersecção >>> a ^ b # união - intersecção

Dicionários É uma maneira prática de guardar informações associadas à chaves. Todo elemento do dicionário é composto por um par chave:valor. Suponha que tenhamos um dicinário de endereços para pessoas numa empresa: >>> adr = { Raphael : Rua A, Marcelo : Rua B } >>> adr[ Marcelo ] Rua B

Mais sobre dicionários Inserir um novo elemento: >>> dic[ newkey ] = newvalue Deletar um elemento: >>> del dic[ Key ] Mostrar o dicionário: >>> dic Mostrar as chaves do dicionário: >>> dic.keys() Testar a existência de uma entrada: >>> Key in dic

Módulos Chegaremos em situações onde muita coisa foi escrita no código e é necessário utilizar isso novamente num futuro. Para isso, salvamos nossos desenvolvimentos em arquivos.py e os chamamos de módulos. Módulos podem ser reutilizados na criação de novos scripts. Para importar um módulo, basta escrever no seu script: import meumódulo Para poder utilizar as funções criadas em outro módulo, use: from meumódulo import *

Arquivos Python também tem suporte para a leitura/escrita de arquivos: >>> f = open( /pasta/do/teste, w ) O primeiro argumento é o diretório do arquivo e o segundo é o método de abertura: Parâmetro Modo de Abertura r Leitura w Escrita (sobrescreve) a Escrita (concatenação) r+ Leitura/Escrita

Arquivos Algumas funções para o arquivo aberto: Comando f.read(~i) f.readline() f.readlines() f.write(string) f.close() Descrição A não ser quando não for especificado i, lê todo o arquivo. Lê uma linha do arquivo e atualiza o ponteiro pra próxima linha. Devolve uma lista com as linhas do arquivo. Escreve a string no arquivo. Fecha o arquivo para alterações.

Exercício Crie um arquivo de texto que contenha os seguintes números (um número por linha): 1;3;6;2;8;3;9;4;7 Modifique a sua função de cálculo da média (qualquer uma delas) de modo que se possa abrir o arquivo com estes números e calcular a sua média (4.77778) Lembre-se do f = open( arquivo, r ) e do f.readlines()

Estruturas Não existem em Python Mas existem...

Classes O que é muito melhor! Não entraremos em muito detalhes aqui (o objetivo não era ensinar OO, mas sim mostrar que existe suporte) Sintaxe: class MinhaClasse: atributo1 = 27 atributo2 = 42 def metodo1(self): return eis um método

Classes Para criar um objeto da nova classe: obj = MinhaClasse() Para acessar um atributo do objeto: Obj.atributo1 Para chamar um método da classe Obj.metodo1()

Obrigado pela participação! Raphael Lupchinski Marcelo Millani