0% acharam este documento útil (0 voto)
5 visualizações35 páginas

10 - Bibliotecas Python

O documento aborda conceitos fundamentais de Python, incluindo módulos, namespaces, escopos de nomes e a biblioteca padrão. Ele também discute bibliotecas de terceiros como Numpy, Matplotlib e SciPy, além de apresentar o framework Django para desenvolvimento web. Exemplos práticos são fornecidos para ilustrar a utilização dessas ferramentas em programação.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
5 visualizações35 páginas

10 - Bibliotecas Python

O documento aborda conceitos fundamentais de Python, incluindo módulos, namespaces, escopos de nomes e a biblioteca padrão. Ele também discute bibliotecas de terceiros como Numpy, Matplotlib e SciPy, além de apresentar o framework Django para desenvolvimento web. Exemplos práticos são fornecidos para ilustrar a utilização dessas ferramentas em programação.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 35

Departamento de Ciência da Computação

Python 3.x
Bibliotecas
Introdução à Ciência da Computação
1
Prof. Edison Ishikawa
Sumário

Departamento de Ciência da Computação


• Módulo
• Namespace
• Escopo de nomes
• Operado ponto
• Pacotes
• Biblioteca padrão
• Bibliotecas de terceiros

2
Módulos

Departamento de Ciência da Computação


• São Arquivos-fonte que podem ser importados por um
programa.
Exemplo de importação absoluta
>>>import math
>>>math.sqrt(3**2 + 4**2) É melhor usar
5 importação absoluta.
Importação relativa pode
Exemplo de importação relativa causar problemas, como
>>>from math import sqrt ofuscação de variáveis
>>>sqrt(3**2 + 4**2) etc.
5
Exemplo de importação relativa de todo o módulo

>>>from math import


* 3
>>>sqrt(3**2 + 4**2) Note o caractere asterisco
5
Namespace
• É uma coleção de identificadores que pertencem a um

Departamento de Ciência da Computação


módulo, função ou classe
• Namespaces agregam coisas relacionadas, por exemplo
• todas as funções matemáticas.
Exemplo
Como foi feita importação relativa o
>>> from math import * namespace math não existe. Logo dá
>>> help(math) erro quando o chamo
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
help(math)
NameError: name 'math' is not defined
>>>
>>> import math namespace math agrega todas as
>>> help(math) funções matemáticas
Help on built-in module math:
NAME math
DESCRIPTION This module is always available. It provides access to the
mathematical functions defined by the C standard.
FUNCTIONS 4
acos(...) acos(x) Return the arc cosine (measured in radians) of x.
acosh(...) acosh(x) Return the inverse hyperbolic cosine of x.

Escopo de nomes

Departamento de Ciência da Computação


• Escopo de um identificador é a região do código do programa
em que o identificador pode ser acessado ou usado
• Existem 3 escopos importantes em Python
• Escopo Local
• Se refere a identificadores declarados dentro de uma função
• Cada função tem seu próprio namespace
• Escopo Global
• Se refere a todos os identificadores dentro do módulo corrente
ou do arquivo
• Escopo Embutido (built-in scope)
• Se refere a todos os identificadores construídos dentro do
Python
• Aqueles que podem ser usados sem a necessidade de importar
módulos e estão (quase) sempre disponíveis.
• Exemplo: range e min.
5
Escopo de nomes

Departamento de Ciência da Computação


• O mesmo nome pode ocorrer em mais de um dos
escopo de Python
• Global
• Local e
• Built-in
• Qual é o que pode ser acessado ou usado?
• Regras de precedência
• O escopo mais interno, ou local, sempre tem precedência
sobre o escopo global,
• O escopo global sempre tem preferência sobre o escopo
built-in.

6
O operador

Departamento de Ciência da Computação


ponto
• Atributos e funções

• são acessados usando o operador ponto ( .)


• Também podemos importar um módulo dando um
nome diferente pra ele.

Exemplo
>>>import math as m
>>>m.pi
3.141592653589793
>>>m.cos(m.pi/3) 7
0.5000000000000001
Criando módulos

Departamento de Ciência da Computação


• Basta salvar o script com a extensão .py
• Suponha o script icc.py
Exemplo: icc.py
def mensagem( ):
print(“ Programar só se aprende programando!”)
return 0

• Para usá-lo basta importar no seu programa

Exemplo
import icc

icc.mensagem( )
8
Pacotes (Packages)

Departamento de Ciência da Computação


• Pacotes regulares são pastas (diretórios) que são
identificadas pelo interpretador pela presença de um
arquivo com o nome __init__.py
• Pacotes funcionam como coleções para organizar
módulos de forma hierárquica.
• Suponha ./pasta/ contendo __init__.py e icc.py
Exemplo
>>>import pasta.icc
>>>pasta.icc.mensagem()

Exemplo
>>>from pasta import icc as picc 9
>>>picc.mensagem()
Biblioteca Padrão

Departamento de Ciência da Computação


• Biblioteca de módulos e pacotes que é distribuída com o
interpretador Python
• Matemática: math, cmath, decimal, random
• Sistema: os, glob, subprocess
• Threads: threading
• Persistência: pickle, marshall
• XML: xml.dom, xml.sac, xml.treee
• Configuração: configparser, optparse
• Tempo: time, datetime
• Outros: sys, logging, traceback, types, timeit ...

10
Números aleatórios
• Frequentemente usamos números aleatórios nos nossos

Departamento de Ciência da Computação


programas:
• Para desenvolver jogos em que o computador precise jogar
um dado ou lançar uma moeda
• Para embaralhar uma pilha de cartas aleatoriamente
• Para simular o regime de chuvas de uma determinada
região com um modelo computacional para estimar o
impacto ambiental em se construir uma represa hidrelétrica
Exemplo
import random

rng = random.Random( ) # cria objeto que gera números pseudo-aleatórios

jogar_dado = rng.randrange(1, 7) # retorna int entre 1 e 6


atraso_em_segundos = rng.random( )*5.0
11
cartas = list(range(52)) # gera um baralho com 52 cartas
rng.shuffle(cartas) # embaralha as cartas
Módulo de tempo

Departamento de Ciência da Computação


• Para obter o tempo
• Para saber o desempenho do seu programa
• Basta obter o tempo no início e no final do programa

Exemplo
>>>import time
>>>time.time( ) # tempo da CPU do processo como float
3.924262932861295e-06
>>>time.localtime( )
time.struct_time(tm_year=2017, tm_mon=10, tm_mday=9, tm_hour=10,
tm_min=21, tm_sec=11, tm_wday=0, tm_yday=282, tm_isdst=0)
>>>help(time)
Help on built-in module time:
NAME
time - This module provides various functions to manipulate time
values.
DESCRIPTION 12
There are t…..
Módulo math

Departamento de Ciência da Computação


• Contém funções matemáticas e algumas constantes

Exemplo
>>> import math
>>> math.pi
3.141592653589793
>>> math.e
2.718281828459045
>>> math.sqrt(2.0)
1.4142135623730951
>>> math.radians(90)
1.5707963267948966
>>> math.sin(math.radians(60))
0.8660254037844386
13
Biblioteca de terceiros

Departamento de Ciência da Computação


• Existem muitas bibliotecas disponíveis escritas por
terceiros para Python
• Para instalar estas bibliotecas use o pip

Exemplo: no prompt do S.O.


usuario@maquina01:~$ pip install nome_do_pacote
Downloading/unpacking nome_do_pacote
Downloading .......
....
....

usuario@maquina01:~$
14
Numpy

Departamento de Ciência da Computação


• Os tipos padrão de Python não são muito adequados
para operações matemáticas.
• Por exemplo, suponha a lista a = [2, 3, 5] multiplicada
por um inteiro.
Exemplo
>>> a = [2, 3, 5]
>>> 2 * a
[2, 3, 5, 2, 3, 5]
• O mesmo vale para a multiplicação por float.
Exemplo
>>> a = [2, 3, 5]
>>> 2.1 * a
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module> 15
2.1 * a
TypeError: can't multiply sequence by non-int of type 'float'
Numpy

Departamento de Ciência da Computação


• Uma forma de resolver este problema em Python é:

Exemplo: Quebra-galho
Jeitinho
a = [ 2, 3, 5] Forçação de barra
b = []
for x in a:
b.append(2.1 * x)

• Isto acontece por que as listas de Python não foram


projetadas para serem um objeto matemático.
• Lista em Python são apenas uma coleção de itens.
• Para termos um tipo de lista que se comporte como um
vetor ou uma matriz matemática, usamos a biblioteca
Numpy. 16
Numpy

Departamento de Ciência da Computação


• Provê:
• Um objeto do tipo vetor n-dimensional de itens
homogêneos,
• Operações matemáticas rápidas utilizando
vetores/matrizes,
• Ferramentas de Álgebra Linear,
• Transformada de Fourier,
• Geração de números aleatórios,
• Operações em polinômios,
• Operações com números complexos,
• Etc.
17
Numpy

Departamento de Ciência da Computação


• Como é uma biblioteca de terceiros é preciso instalá-lo
antes de usar

Exemplo no Linux
user@maquina01:/home/user/$ sudo pip install numpy

• No Windows, siga um dos vários tutoriais disponíveis na


Web:
• https://solarianprogrammer.com/2017/02/25/install-numpy-
scipy-matplotlib-python-3-windows/
18
Numpy

Departamento de Ciência da Computação


• Multiplicação
Exemplo:
>>> import numpy as np
>>> a = np.array([2, 3, 5])
>>> 2.1 * a
array ([4.2, 6.3, 10.5])
>>> a + a
array ([4, 6, 10])
>>> a * 2
array ([4, 6, 10])
>>> np.dot(a, a)
38

19
matplotlib

Departamento de Ciência da Computação


• É uma biblioteca para desenhar gráficos Python 2D que
produz figuras de qualidade para publicação em uma
grande variedade de formatos.
• Você pode gerar gráficos, histogramas, diagramas de
espectro, gráficos de barras, gráficos de erros,
diagramas de dispersão, etc., com apenas algumas
linhas de código.
• Como toda biblioteca de terceiros precisa ser instalada
antes de usar.

Exemplo de instalação no Linux


user@maquina01:/home/user/$ sudo pip install matplotlib
20
matplotlib

Departamento de Ciência da Computação


Exemplo:
# An extra set of sample plots for the thumbnail image.

import matplotlib.pyplot as plt


import numpy as np

np.random.seed(19680801)
data = np.random.randn(2, 100)

fig, axs = plt.subplots(2, 2, figsize=(5, 5))


axs[0, 0].hist(data[0])
axs[1, 0].scatter(data[0], data[1])
axs[0, 1].plot(data[0], data[1])
axs[1, 1].hist2d(data[0], data[1])
21
plt.show()
matplotlib

22

Departamento de Ciência da Computação


matplotlib

23

Departamento de Ciência da Computação


matplotlib

24

Departamento de Ciência da Computação


matplotlib

Departamento de Ciência da Computação


• Veja mais exemplos e tutoriais em:
• http://matplolib.org

25
SciPy

Departamento de Ciência da Computação


• Numpy
• Matplotlib
• Biblioteca SciPy:
 Estatística

 Processamento de sinais/imagens

 Estruturas de dados espaciais

• Biblioteca SymPy (computação simbólica)

Exemplo:
>>> integrate(cos(x), x)
sin(x)
>>> diff(cos(x), x)
-sin(x) 26
SciPy

Departamento de Ciência da Computação


27

https://github.com/SPLMC/reana-evaluator
Scikit-learn

Departamento de Ciência da Computação


• Aprendizado de máquina
 Classificação

 Regressão

 Agrupamento

• Útil em aplicações de inteligência artificial


• Baseada em Numpy, SciPy e Matplotlib

28
Outras bibliotecas

Departamento de Ciência da Computação


• Processamento de páginas web
 BeautifulSoup
• Jogos
• Pygame, Panda 3D
• Banco de dados - DBI
• Pymysql, sqlite3, postgresql, pymongo
• Aplicações Web
• Django
• Interface Gráfica
• PyQt
• Computação Gráfica
• Pillow, Vpython, OpenGL
• Plataformas portáteis (App para Android e IoS)
29
• Kivy
Outras bibliotecas

Departamento de Ciência da Computação


• Controle de câmera GoPro:
https://github.com/DenisCarriere/gopro

Exemplo:
>>> from gopro import GoPro
>>> camera = GoPro.GoPro()
>>> camera.photo()
>>> camera.video()
>>> camera.timelapse()

30
Framework Django

Departamento de Ciência da Computação


• É um framework para aplicações Web de alto nível.
• Escrito em Python, incentiva o desenvolvimento rápido
com um design limpo e pragmático.
• Construído por desenvolvedores experientes, ele cuida
de muitos dos problemas do desenvolvimento da Web,
para que você possa se concentrar em escrever seu
aplicativo sem precisar reinventar a roda.
• É gratuito e de código aberto.

31
Sites feitos com Django/Python

Departamento de Ciência da Computação


We all know YouTube as the place to upload cat videos and fails. 32
As one of the most popular websites in existence,
it provides us with endless hours of video entertainment.
The Python programming language powers it and the features we love.
Sites feitos com Django/Python

Departamento de Ciência da Computação


Python also provides the power behind the most popular
33
search engine in the world – Google.
The programming language can handle the traffic and computing needs
of the search engine and its connected apps.
Sites feitos com Django/Python

Departamento de Ciência da Computação


34
The National Aeronautics and Space Administration’s official website is the place
to find news, pictures, and videos about their ongoing space exploration.
This Django website can easily handle huge amounts of views and traffic.
Bibliografia

Departamento de Ciência da Computação


• How to Think Like a Computer Scientist: Learning
with Python 3 – Documentation - Release 3rd Edition
• Peter Wentworth, Jeffrey Elkner,Allen B. Downey and
Chris Meyers
• Apr 26, 2017

35

Você também pode gostar