Bibliotecas e módulos
Contents
Bibliotecas e módulos¶

Agora que você já tem uma versão do Python instalada no seu computador, você já pode começar a utilizar comandos. Para acessar o Python pela linha de comando, você pode utilizar o cmd
/ PowerShell
/ terminal
(caso você tenha feito uma instalação adicionando o Python ao PATH
) ou usar o Anaconda prompt
(caso você tenha instalado tanto o Anaconda completo ou Miniconda).
Digite
⊞ Win
(Windows) +cmd
ouPowerShell
; ouDigite
⊞ Win
(Windows) +Anaconda prompt
;No Linux, entre no seu terminal;
Ou abra qualquer das opções acima via menu do seu sistema operacional
Usando o cmd
, digitando python
, o sistema fica esperando comandos em Python (>>>
indica isto):
C:\Users\silva>python
Python 3.10.2 (default, Sep 16 2021, 16:59:28) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
No Anaconda prompt
, digitando python
, temos:
(base) C:\Users\silva>python
Python 3.10.2 (default, Sep 16 2021, 16:59:28) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
Dica
Você pode sair do Python de volta para o cmd
/ PowerShell
/ terminal
, usando exit()
:
>>> exit()
C:\Users\silva>
Vamos ver os comandos básicos do Python na Parte 2 deste livro, mas você já pode experimentar com comandos matemáticos simples:
+
: adição-
: subtração*
: multiplicação/
: divisão
>>> 3 + 2
5
>>> (4 * 2) / 3
2.6666666666666665
>>>
Mas vamos imaginar que você queira fazer uma operação como raiz quadrada. Você até poderia implementar manualmente (afinal \(\sqrt{4} = 4^{1/2}\)), mas todas as linguagens de programação modernas tem uma função que facilita isto para nós.
Nota
De forma simplificada, uma função é um conjunto nomeado de uma ou mais operações que pode ser reutilizado.
O problema é que esta função (raiz quadrada) não está no cerne (core) do Python. É aí que entram as bibliotecas.
Nota
Uma biblioteca é uma coleção de código, externo ao cerne do Python, mas que pode ser incorporada por meio de importação.
Antes de vermos como importar bibliotecas, precisamos entender que há uma hierarquia entre as bibliotecas:
Primeiro temos o cerne (core) do Python
Em seguida, há um conjunto de bibliotecas (Bibliotecas padrão do Python, Python standard libraries) que, por padrão, são instaladas com o Python
Outras bibliotecas, instaladas pelo usuário
Importando bibliotecas¶
No nosso exemplo acima, para fazer a raiz quadrada, usamos a função sqrt()
(de square root, raiz quadrada) que está na biblioteca math
(matemática). Precisamos primeiro importar a biblioteca math
antes de usar a função sqrt()
(ou teremos erro, afinal o Python não vai encontrar onde essa função está). A biblioteca math
faz parte das bibliotecas padrão do Python e não precisa ser instalada, somente importada.
Para importar uma biblioteca, usamos o comando import
+ o nome da biblioteca:
>>> import math
>>>
Só que se agora usarmos a função sqrt()
, retorna um erro:
>>> sqrt(4)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'sqrt' is not defined
>>>
Erros são excelentes professores - se soubermos lê-los. Conforme você for encontrando erros, você será cada vez mais capaz de interpretar o que fez de errado. Aqui, a mensagem NameError: name 'sqrt' is not defined
implica que o Python não está encontrando (não há definição prévia para) sqrt()
. Mas não acabamos de importar a biblioteca math
que contém sqrt()
? O problema está no referenciamento - quando referenciamos qualquer coisa dentro de uma biblioteca, usamos o operador .
que serve para dizer tal comando está em tal biblioteca. Veja agora como fica:
>>> math.sqrt(4)
2.0
>>>
Agora sim o interpretador entendeu que math
contém sqrt()
por meio de .
e, portanto, executa sem erros.
Mas como fazemos para utilizar bibliotecas que não estão instaladas no computador?
Instalando bibliotecas¶
Durante a seção Instalando o Python, discutimos que há dois principais gerenciadores de bibliotecas, o pip
e o conda
. O pip
é instalado por padrão com o Python e gerencia somente bibliotecas do Python, e o conda
que gerencia bibliotecas em qualquer linguagem. O conda
é instalado por padrão com qualquer versão do Anaconda. Apesar de ambos (na maioria dos casos) serem intercambiáveis, na prática a maior parte das instalações ocorre via pip
.
Para instalar uma biblioteca com pip
(caso você tenha adicionado o Python ao PATH
) entre no cmd
/ PowerShell
/ terminal
e digite pip install
+ o nome da biblioteca desejada. Alternativamente, você pode usar o Anaconda prompt
e digitar o mesmo comando. Como exemplo, vamos instalar a biblioteca camelcase
.
Dica
Camelcase é uma forma de organizar nomes em linguagem de programação (CamelCase
em que cada palavra começa com maiúscula, imitando as corcovas de um camelo, daí o nome).
C:\Users\silva>pip install camelcase
...
C:\Users\silva>
Agora a biblioteca camelcase está devidamente instalada, podendo ser importada conforme a necessidade.
Você pode instalar mais de uma biblioteca de uma vez, bastando deixar um espaço entre os nomes de cada biblioteca. Caso você tenha feito a instalação do Miniconda ou Miniforge, este é um bom momento para instalar algumas bibliotecas essenciais para o continuidade nas próximas seções:
pip install jupyter jupyterlab numpy pandas matplotlib seaborn
Abreviando bibliotecas¶
Além disso, é comum, ao importar uma biblioteca, darmos um apelido (alias) como abreviação e economizar digitação - use import
+ [nome original]
+ as
+ [nome alternativo]
. Por exemplo, é muito comum encurtar as bibliotecas numpy
e pandas
assim:
>>> import numpy as np
>>> import pandas as pd
Assim, chamar a função read_csv()
do pandas
(algo que você provavelmente fará centenas de vezes) se torna mais cômodo - isto é, usar pd.read_csv()
ao invés de pandas.read_csv()
.
Dica
Uma curiosidade é que a biblioteca de visualização seaborn
é tradicionalmente encurtada para sns
por causa de uma piada da equipe desenvolvedora, que sempre relacionava a biblioteca seaborn
ao personagem Samuel Norman Seaborn da série The West Wing. A partir de agora, quando você vir o comando extremamente comum import seaborn as sns
, você já sabe o motivo.
Para terminar, você pode importar somente algumas partes de uma biblioteca, caso só pretenda usar aquela parte (economizando assim, memória gasta e poluindo menos o espaço de nomes). Para tanto, use o comando from
+ nome da biblioteca + import
+ componente. Quando você importa algo com from
você traz para o seu ambiente os nomes do componente - ou seja, você pode usar diretamente, sem referenciar com .
.
Anteriomente, importamos a biblioteca math
, mas precisamos ainda usar .
para chamar a função sqrt()
. Caso você use from math import sqrt
, você pode fazer:
>>> from math import sqrt
>>> sqrt(16)
4.0
>>>
Outro exemplo: é muito comum importar pyplot
da biblioteca de visualização matplotlib
:
>>> from matplotlib import pyplot
Ao fazer isto, você pode usar pyplot
sem referenciar matplotlib
. Mas por que parar aí se você ainda pode adicionar uma abreviação?
>>> from matplotlib import pyplot as plt
No entanto, fora de alguns casos já fossilizados (isto é, todo mundo faz isso), como no caso de from matplotlib import pyplot as plt
, deve-se evitar usar from X import Y
porque diminui a legibilidade do código. Vamos ser menos preguiçosos e referenciar as bibliotecas originais.
Atenção
É possível importar todos os componentes de uma biblioteca e não precisar referenciar com o formato biblioteca.componente()
. Para tanto, usa-se from
+ biblioteca + import
+ *
. No entanto, isto é considerado uma má prática e você deve evitar. Isso ocorre porque quando você importa todo o conteúdo de uma biblioteca, você “polui” o espaço de nomes padrão (os comandos já automaticamente carregados pela biblioteca padrão do Python), com uma diversidade de comandos que podem entrar em conflito (por ter nomes iguais, por exemplo). Veremos mais adiante o conceito de espaços de nomes (namespaces) na Parte 2 - Programação em Python, e você entenderá o impacto de importar todo o conteúdo de um biblioteca com from
+ biblioteca + import
+ *
Importando módulos¶
Qualquer trecho de código em Python pode ser salvo para ser reutilizado posteriormente no formato .py
. Você pode fazer isto em um mero editor de texto como o Bloco de notas
ou gedit
. Veremos mais adiante outras formas de gerenciar seus códigos em Python.
A diferença entre um módulo e uma biblioteca reside aí - enquanto um módulo é um arquivo .py
externo que incorporamos no nosso código, uma biblioteca é uma coleção de módulos, podendo conter diversos arquivos .py
e até mesmo arquivos em outras linguagens de programação ( C++
, por exemplo).
Vamos iniciar criando um código simples - uma função chamada dizer_ola()
, que toda vez que chamada, imprime na tela a expressão Olá!
. Não se preocupe com esta sintaxe, veremos na Parte 2 - Programando em Python, como criar nossas próprias funções, como aqui:
def dizer_ola():
print("Olá!")
Vamos salvar este bloco de código em um arquivo ola.py
(na mesma pasta onde estamos trabalhando). Agora, podemos importar ola
, como fizemos anteriormente:
>>> import ola
Uma vez importado, você pode usar o conteúdo de ola
por meio do referenciador .
, como fizemos com as bibliotecas:
>>> ola.dizer_ola()
Dica
Você não precisa necessariamente ter um módulo salvo na mesma pasta do seu projeto (apesar de ser uma boa prática). Caso tenha salvo em outro lugar, você pode utilizar a biblioteca sys
(de sistema operacional, operational system) para ligar a outro lugar:
import sys
sys.path.append("C:/.../ola.py")
import ola
ola.dizer_ola()
Resumo¶
Até agora vimos uma forma principal de interagir com o Python - por meio de linha de comando (ou prompt
). Quando isto acontece, vemos o marcador >>>
ao fim da linha, esperando um comando. A partir de agora, não vamos mais reproduzir este marcador. Via de regra, usamos linha de comando para pequenas operaçòes ou para gestão dos nossos projetos (instalação e importação de biblitoecas, etc.). Este código geralmente não se salva, sendo parte do REPL
(ler, avaliar, imprimir, repetir; read, evaluate, print, loop).
Além disto, vimos de forma superficial que você pode escrever programas em Python em um editor de texto. Veremos mais adiante como fazer isto de forma mais eficiente, utilizando, por exemplo, o VS Code.
A terceira forma, diferente das que vimos até aqui, envolve os notebooks Jupyter (arquivo .ipynb
). Usar um notebook Jupyter é muito vantajoso, porque você pode usar num mesmo ambiente (seja no Jupyter Lab ou VS Code, por exemplo) código, texto, imagens e acesso direto ao prompt
.
Em resumo:
Usar no modo interativo da linha de comando (REPL)
Usar um editor de texto (arquivo
.py
)Usar um notebook Jupyter (arquivo
.ipynb
)