Escolar Documentos
Profissional Documentos
Cultura Documentos
Python
Python
Biblioteca Padrão
Python Aula 04
2
Comando print
Forma mais atual:
Python Aula 04
3
Funções
...Seu programa tendo cara de programa!
Python Aula 04
4
Definindo Funções
Definição da função inicia com “def” Nome da função Argumentos
Identação
Python Aula 04
5
Definindo Funções
Definição da função inicia com “def” Nome da função Argumentos
Identação
Python Aula 04
6
Chamando uma função
• Sintaxe básica para chamar uma função:
Python Aula 04
7
Passagem de parâmetros
• Várias métricas podem ser usadas na passagem dos parâmetros
de uma função:
Python Aula 04
8
Parâmetros com valores padrões
• Cada parâmetro pode ter um valor padrão.
• Utilizado quando um parâmetro é omitido na chamada da função
return res
Python Aula 04
9
Parâmetros com valores padrões
• Esta função pode ser invocada de várias formas:
def myfun(x, y = 4, prompt = True):
res = x * y
if prompt:
print “Resposta é %i”, res
return res
>>> myfun(3)
Resposta é 12
12
>>> myfun(x=3, prompt = False)
12
>>> myfun(5, 2, False)
10
Python Aula 04
10
Parâmetros com valores padrões
• Valores default são avaliados apenas uma vez
• Objetos mutáveis (listas, dicionários) armazenam chamadas
anteriores
Python Aula 04
11
Parâmetros…
Python Aula 04
12
Múltiplos argumentos (args)
• Pode receber um número arbitrário de parâmetros
• *args (( entra uma tupla para dentro da função ))
Python Aula 04
13
Múltiplos argumentos (args)
• Pode receber um número arbitrário de parâmetros
• *args (( entra uma tupla para dentro da função ))
• Pode ocorrer também o desempacotamento automático…
passando como parâmetro o *….
Python Aula 04
14
Múltiplos argumentos (kwargs)
• Podem receber um número arbitrário de ‘keywords’
• **kwargs
Melhorando...
Python Aula 04
15
Múltiplos argumentos (kwargs)
• Podem receber um número arbitrário de ‘keywords’
• **kwargs
Um exemplo mais complexo....
Python Aula 04
16
Múltiplos argumentos
• Podem receber inclusive listas e dicionários.
Outro exemplo...
Atenção:
Erro!
Python Aula 04
17
Valor de retorno
• Toda função em Python retorna alguma valor;
• Mesmo funções que não possuem a cláusula return.
• Funções que não possuem return retornam None.
• None é uma constante especial definida na linguagem;
• Similar a NULL, void, ou nil em outras linaguagens;
• É lógicamente equivalente à False;
• O interpretador não imprime None.
Python Aula 04
18
Valor de retorno
• Uma função pode retornar mais de um valor
>>> def teste():
x = 1
y = 2
z = 3
return x, y, z
>>> x, y, z = teste()
>>> ret = teste()
>>> ret
(1, 2, 3)
Python Aula 04
19
Observações 1/2
• Funções podem ser utilizadas da mesma maneira que
outro tipo de dado em Python
• Elas podem ser:
- Argumentos para outras funções;
- Valores de retorno de outras funções;
- Atribuídas para outras variáveis;
- Partes de tuplas, listas, etc;
Python Aula 04
20
Observações 2/2
• A execução da função cria uma nova tabela de símbolos,
específica para a função.
• Variáveis declaradas dentro da função são unicamente
locais!
• São destruídas após a execução de toda a função.
• Funções tem acesso à variáveis com escopo global.
• Utilizando a cláusula global você pode acessar/modificar
variáveis globais.
Python Aula 04
21
Algumas funções especiais
... e Python também tem seu momento
funcional!
Python Aula 04
22
Notação lambda
• Funções podem ser definidas sem precisar de rótulos!
• Isto é muito útil quando você quer passar uma pequena função como
argumento para outra função
• Apenas funções simples (única expressão) podem ser definidas nessa
notação.
• Notação lambda tem um histórico rico em linguagens de programação
desde I.A. passando por LISP, haskell...
Python Aula 04
23
Notação lambda
Python Aula 04
24
Notação lambda
Python Aula 04
25
Notação lambda
Python Aula 04
26
Funções map, reduce e filter
• Função map(func, seq)
Python Aula 04
27
Funções map, reduce e filter
• Função map(func, seq)
• Função interna que aplica uma função func a cada item de um objeto
sequência (seq) e retorna uma lista com os resultados da chamada da
função.
Python Aula 04
28
Funções map, reduce e filter
• Função map(func, seq)
Python Aula 04
29
Funções map, reduce e filter
• Função map(func, seq)
Python Aula 04
31
Funções map, reduce e filter
• Função filter(func, seq)
Python Aula 04
32
Funções map, reduce e filter
• Função filter(func, seq)
• Função interna que aplica uma função filtro func a cada item de um
objeto sequência (seq) e retorna uma lista com os resultados que
satisfazem os critérios da função de teste seq.
Python Aula 04
33
Funções map, reduce e filter
• Função filter(func, seq)
• Exemplo de utilização → remoção de dados faltantes
Python Aula 04
34
Funções map, reduce e filter
• Função filter(func, seq)
• Outro exemplo mais complexo….
Python Aula 04
35
Funções map, reduce e filter
• Combinando MAP com FILTER
Python Aula 04
36
Funções map, reduce e filter
•Função reduce(func, seq)
•Função que aplica a função sobre o valor corrente retornado pela função
(func) junto com o próximo item da lista. Import de functools
Python Aula 04
37
Funções map, reduce e filter
•Função reduce(func, seq)
Python Aula 04
38
Funções map, reduce e filter
•Função reduce(func, seq)
Python Aula 04
39
Funções map, reduce e filter
•Função reduce(func, seq)
Python Aula 04
40
Funções Any e All
all()
any()
Python Aula 04
41
Função sorted()
Trabalha igual ao sort() para listas...
Entretanto, atua sobre qualque iterável... Inclusive listas.
Não altera a original. Cria uma nova!
Python Aula 04
42
Função zip
Python Aula 04
43
Funções geradoras e iteradores
• Função enumerate
- Função que gera uma tupla (índice, item da tupla) que ajuda na manipulação de
sequências e dicionários.
• Função iter(sequencia/dicionario)
- Função para produzir objetos iteradores em resposta à função interna iter.
Python Aula 04
44
List Comprehension
Python Aula 04
45
List Comprehension
Python Aula 04
46
List Comprehension
Python Aula 04
47
Generators
Python Aula 04
48
Generators
Python Aula 04
49
Generators
Python Aula 04
50
Generators
Python Aula 04
51
Módulos
... Módulos: o que é, como criar e como utilizar.
Python Aula 04
52
Introdução 1/2
• Quando você encerra o interpretador, todas as definições de
variáveis e funções são perdidas;
• Solução é gerar um script e roda-lo.
Python Aula 04
53
Introdução 2/2
• Um módulo é um arquivo .py contendo definições e comandos
Python:
- Funções
- Variáveis e constantes
- Classes
- ...
if __name__ == “__main__”:
print “Execute algum código”
Python Aula 04
55
Pacotes
• Pacotes são coleções de módulos Python.
• Qualquer diretório do sistema operacional que contém um arquivo
__init__.py dentro é considerado um pacote.
• Pacotes organizam módulos e permitem que programadores importem
módulos da seguinte maneira:
• import meuPacote.meuSubPacote.meuModulo
# meuPacote/
# __init__.py -- vazio
# meuSubPacote/
# __init__.py -- vazio
# meuModulo.py -- modulo importado
Python Aula 04
56
Pacotes (2)
• Python dá suporte à hierarquia de pacotes onde
podemos ter uma árvore de pacotes separadas
por pastas
Python Aula 04
58
Caminho de busca dos módulos
• Quando você executa import meuModulo o interpretador
procura pelo arquivo meuModulo.py seguindo uma
determinada regra.
- Primeiramente ele procura pelo arquivo no diretório corrente (onde o interpretador
foi executado).
- Caso ele não encontre o arquivo no diretório corrente, a busca prossegue em uma
lista de diretórios que é especificada na variável sys.path
Python Aula 04
59
Compilando um módulo Python
... Compilando??? Como assim??? Python não é
interpretado???
?
Python Aula 04
60
Compilando um módulo Python
Python Aula 04
61
Compilando um módulo Python
Python Aula 04
62
Como compilar
• Nas novas versões da linguagem a pré-compilagem é realizada
automaticamente.
- Interpretador também controla as modificações nos módulos e reproduz as mesmas
no byte-code.
- Você pode rodar só a versão ótimizada de seu módulo (.pyc) sem a necessidade de
do arquivo .py original.
Python Aula 04
63
Como compilar
Python Aula 04
64
Módulos da biblioteca
padrão
... O poder de python agora!
Python Aula 04
65
Módulo math
• Disponibiliza uma série de funções e constantes matemáticas
que auxiliam na criação de aplicações científicas.
math.sqrt(numero): Retorna a raiz quadrada do número;
Python Aula 04
67
Módulo sys
• Funções/constantes que acessam e manipulam o interpretador.
sys.argv: Lista que contém os argumento passados por parâmetro em um script;
Python Aula 04
68
Módulo sys
Python Aula 04
69
Módulo os
• Interface para operações com o sistema operacional
os.open(filename, mode): Abre um arquivo do sistema de arquivos;
Python Aula 04
71
Módulo re
• Usa-se raw string (string cruas) r “”
• Podemos definir repetição, ocorrência
• Há duas formas de usar:
• Definindo um objeto expressão regular, compilando uma string
de definição
• Usando um comando re passando como argumento uma string
definindo uma regexp
Python Aula 04
72
Módulo re
• Define-seuma expressão regular e a compila usando o
comando compile
• Pode-se usar expressões comentadas para auxiliar o
entendimento do funcionamento da regexp
Python Aula 04
73
Outros Módulos
Data Compression - zlib, gzip, bz2, zipfile, tarfile
http://docs.python.org/library/archiving.html
Python Aula 04
74
Outros Módulos
Multimedia- audioop, imageop, wave
http://docs.python.org/library/mm.html
Python Aula 04
75
Outros Módulos
Date e Horário- date, time, datetime, timedelta, tzinfo, timezone
http://docs.python.org/library/datetime.html
Calendário- calendar.iterweekdays(), …
http://docs.python.org/library/calendar.html
Python Aula 04
76
Adicional
Python Aula 04
77
Tratamento de Erros…
try:
...
except:
...
Python Aula 04
78
Tratamento de Erros…
try:
...
except:
...
Else:
...
Finally:
...
Python Aula 04
79