Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

1
Python: Funções, Módulos e a 
Biblioteca Padrão
Prof. Dr. Dilermando Piva Jr.
Python Aula 04 
2
Comando print
Python Aula 04 
Forma antiga:
3
Comando print
Python Aula 04 
Forma mais atual:
4
Funções
...Seu programa tendo cara de programa!
Python Aula 04 
5
Definindo Funções
Definição da função inicia com “def” Nome da função Argumentos
Identação
“return” indica o retorno 
da função
Python Aula 04 
6
Definindo Funções
Definição da função inicia com “def” Nome da função Argumentos
Identação
“return” indica o retorno 
da função
Sem header file
Sem declaração do tipo de retorno da função ou do tipo dos argumentos
Python Aula 04 
7
Chamando uma função
>>> def myfun(x, y):
return x * y
>>> myfun(3, 4)
12
• Sintaxe básica para chamar uma função:
Python Aula 04 
8
Passagem de parâmetros
• Várias métricas podem ser usadas na passagem dos parâmetros
de uma função:
>>> def myfun(x, y):
return x * y
>>> myfun(3, 4)
12
>>> myfun(y=3, x=4)
12
>>> myfun(3, y=4)
12
Python Aula 04 
9
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
def myfun(x, y = 0.3, prompt = True):
res = x * y
if prompt:
print “Resposta é %f”, res
return res
Python Aula 04 
10
Parâmetros com valores padrões
def myfun(x, y = 4, prompt = True):
res = x * y
if prompt:
print “Resposta é %i”, res
return res
• Esta função pode ser invocada de várias formas:
>>> myfun(3)
Resposta é 12
12
>>> myfun(x=3, prompt = False)
12
>>> myfun(5, 2, False)
10
Python Aula 04 
11
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 
12
Parâmetros…
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 ))
Python Aula 04 
14
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 
15
Múltiplos argumentos (kwargs) 
• Podem receber um número arbitrário de ‘keywords’
• **kwargs
Python Aula 04 
Melhorando...
16
Múltiplos argumentos (kwargs) 
• Podem receber um número arbitrário de ‘keywords’
• **kwargs
Python Aula 04 
Um exemplo mais complexo....
17
Múltiplos argumentos 
• Podem receber inclusive listas e dicionários.
Python Aula 04 
Outro exemplo...
Atenção: 
Erro!
18
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 
19
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 
20
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 
21
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 
22
Algumas funções especiais
... e Python também tem seu momento 
funcional!
Python Aula 04 
23
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 
24
Notação lambda
Python Aula 04 
25
Notação lambda
Python Aula 04 
26
Notação lambda
Python Aula 04 
27
Funções map, reduce e filter
• Função map(func, seq)
Python Aula 04 
28
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 
29
Funções map, reduce e filter
• Função map(func, seq)
Python Aula 04 
30
Funções map, reduce e filter
• Função map(func, seq)
Python Aula 04 
Observação: após utilizar o objeto MAP, 
o resultado é zerado.
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)
Python Aula 04 
33
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 
34
Funções map, reduce e filter
• Função filter(func, seq)
• Exemplo de utilização→ remoção de dados faltantes
Python Aula 04 
35
Funções map, reduce e filter
• Função filter(func, seq)
• Outro exemplo mais complexo….
Python Aula 04 
36
Funções map, reduce e filter
• Combinando MAP com FILTER
Python Aula 04 
37
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 
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 map, reduce e filter
•Função reduce(func, seq)
Python Aula 04 
41
Funções Any e All
Python Aula 04 
all()
any()
42
Função sorted()
Python Aula 04 
Trabalha igual ao sort() para listas...
Entretanto, atua sobre qualque iterável... Inclusive listas.
Não altera a original. Cria uma nova!
43
Função zip
Python Aula 04 
44
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 yield value
- Função interna poderosa para gerar valores a medida que for chamada.
• Função iter(sequencia/dicionario)
- Função para produzir objetos iteradores em resposta à função interna iter.
Python Aula 04 
45
List Comprehension
Python Aula 04 
46
List Comprehension
Python Aula 04 
47
List Comprehension
Python Aula 04 
48
Generators
Python Aula 04 
49
Generators
Python Aula 04 
50
Generators
Python Aula 04 
51
Generators
Python Aula 04 
52
Módulos
... Módulos: o que é, como criar e como utilizar.
Python Aula 04 
53
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.
• Mas e se você desejar utilizar um determinada função do script
em outro programa?
Solução são os módulos!
Python Aula 04 
54
Introdução 2/2
• Um módulo é um arquivo .py contendo definições e comandos
Python:
- Funções
- Variáveis e constantes
- Classes
- ...
• Vantagem é a possibilidade de adicionar todas estas definições
em outros arquivos ou módulos.
• Isto é feito utilizando a cláusula import
Python Aula 04 
55
Executando módulos como scripts
• Rodar um módulo Python é similar a importar as definições do
módulo para o interpretador.
• Se você fizer python meuModulo.py irá carregar as definições e destruir logo
em seguida!
• Para executar algumdeterminado código de maneira similar à
um script você deve testar a cláusula __name__ :
if __name__ == “__main__”:
print “Execute algum código”
Python Aula 04 
56
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 
57
Pacotes (2)
• Python dá suporte à hierarquia de pacotes onde
podemos ter uma árvore de pacotes separadas
por pastas
• O arquivo __init__.py é quem caracteriza um
pacote
Python Aula 04 
58
Pacotes (3)
• O comando from import * não funciona por default
• Deve-se adicionar o atributo __all__ dentro do arquivo __init__.py do
pacote
Python Aula 04 
59
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
• Você pode atribuir novos diretórios de busca na variável
sys.path (ela é uma lista dentro do módulo sys da biblioteca
padrão)
Python Aula 04 
60
Compilando um módulo Python
... Compilando??? Como assim??? Python não é 
interpretado???
Python Aula 04 
?
61
Compilando um módulo Python
• Sim, Python é e continua sendo interpretada!
- Python utiliza o conceito de byte-code (muito conhecido em Java).
• O que acontece quando você importa um módulo:
1) - Interpretador busca pelo arquivo .py correspondente;
2) - Arquivo .py é “compilado” para o byte-code reconhecido pelo interpretador;
3) - Byte-Code é incorporado a tabela de símbolos correntes do interpretador.
Python Aula 04 
62
Compilando um módulo Python
• Compilação para byte-code pode ser um gargalo de
desempenho quando você carregar um programa!
- Especialmente se você utiliza muitos módulos em seu programa.
• Solução é pré-compilar os módulos antes de rodar seu
programa!
Python Aula 04 
63
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.
• Algumas dicas de otimização:
- Invoque o interpretador com a opção -O. Isto gera código mais otimizado;
- Otimizações realizadas pela pré-compilagem e pelo -O influenciam somente a
velocidade em que os módulos são carregados e não executados;
- Você pode rodar só a versão ótimizada de seu módulo (.pyc) sem a necessidade de
do arquivo .py original.
Python Aula 04 
64
Como compilar
Python Aula 04 
65
Módulos da biblioteca 
padrão
... O poder de python agora!
Python Aula 04 
66
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;
math.cos(numero): Retorna o cosseno do número em radiano;
maht.sin(numero): Retorna o seno do número em radiano;
math.tan(numero): Retorna a tangente do número em radiano;
math.radians(numero): Converte o angulo ‘numero’ de graus para radiano;
math.hypot(x, y): Retorna a hipotenusa dos números (catetos) fornecidos;
math.pi: Constante que represente o número pi (3.141592...).
Python Aula 04 
The Python Standard Python Library - math
http://docs.python.org/library/math.html
67
Outros módulos numéricos e matemáticos
numbers: manipulação de dados numéricos
http://docs.python.org/library/numbers.html
cmath - Funções matemáticas para números complexos
http://docs.python.org/library/cmath.html
random - Geração de números randomicos
http://docs.python.org/library/random.html
Python Aula 04 
68
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;
sys.path: Lista com os diretórios de busca do interpretador;
sys.platform: Retorna a plataforma em que o interpretador está rodando;
sys.stdin: Manipulação do stream de entrada;
sys.stdout: Manipulação do stream de saída;
sys.stderr: Manipulação do stream de erro;
Python Aula 04 
The Python Standard Python Library - sys
http://docs.python.org/library/sys.html
69
Módulo sys
Python Aula 04 
70
Módulo os
• Interface para operações com o sistema operacional
os.open(filename, mode): Abre um arquivo do sistema de arquivos;
os.read(file, buffersize): Lê uma determinada fração de um arquivo aberto;
os.write(file, string): Escreve uma determinada string em um arquivo aberto;
os.chmod(file, mode): Altera as permissões de um arquivo;
os.chdir(path): Altera o diretório de trabalho corrente;
os.getenv(key): Retorna uma determinada variável de ambiente do SO;
os.getlogin(): Retorna o login do usuário que está rodando o interpretador;
os.kill(pid): Mata um determinado processo do SO.
Python Aula 04 
The Python Standard Python Library - os
http://docs.python.org/library/os.html
71
Módulo re
• Módulo responsável pela criação e manipulação de expressões
regulares
• Expressões Regulares é uma forma avançada de mexer com
strings
• Permite que você crie condições para que um trecho seja
encontrado, substituído ou tratado de alguma forma
Python Aula 04 
72
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 
73
Módulo re
• Define-se uma 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 
74
Outros Módulos
Data Compression - zlib, gzip, bz2, zipfile, tarfile
http://docs.python.org/library/archiving.html
Criptografia - hashlib, hmac, mds, sha
http://docs.python.org/library/crypto.html
Linguagens de marcação - sgmlib, htmllib, xml
http://docs.python.org/library/markup.html
Internet - webbrowser, cgi, httplib, ftplib, poplib, smtplib, SocketServer
http://docs.python.org/library/internet.html
Python Aula 04 
http://docs.python.org/library/math.html
http://docs.python.org/library/math.html
http://docs.python.org/library/math.html
http://docs.python.org/library/math.html
75
Outros Módulos
Multimedia- audioop, imageop, wave
http://docs.python.org/library/mm.html
Internacionalização - gettext, locale
http://docs.python.org/library/i18n.html
Interface Gráfica - Tkinter (TCL/TK)
http://docs.python.org/library/tk.html
Desenvolvimento - pydoc, doctest, unittest
http://docs.python.org/library/development.html
Debug - bdb, pdb
http://docs.python.org/library/debug.html
Python Aula 04 
http://docs.python.org/library/math.html
http://docs.python.org/library/math.html
http://docs.python.org/library/math.html
http://docs.python.org/library/math.html
http://docs.python.org/library/math.html
76
Outros Módulos
Date e Horário- date, time, datetime, timedelta, tzinfo, timezone
http://docs.python.org/library/datetime.html
Tempo – time.asctime([t]), time.clock(), time.localtime([secs])
http://docs.python.org/library/time.html
Calendário- calendar.iterweekdays(), …
http://docs.python.org/library/calendar.html
Python Aula 04 
http://docs.python.org/library/math.html
http://docs.python.org/library/math.html
http://docs.python.org/library/math.html
77
Adicional
Python Aula 04 
78
Tratamento de Erros…
Python Aula 04 
try:
...
except:
...
79
Tratamento de Erros…
Python Aula 04 
try:
...
except:
...
Else:
...
Finally:
...

Mais conteúdos dessa disciplina