Módulos e imports do Python
Conheça as funções disponibilizadas pelo próprio Python através de seus módulos.
Ao longo das últimas lições, você aprendeu a criar suas próprias funções para organizar e reutilizar código. Mas aqui vai uma boa notícia: você não precisa criar tudo do zero.
O Python já vem com uma enorme biblioteca de funções prontas, organizadas em módulos. É como se, além de montar suas próprias ferramentas, você tivesse acesso a uma loja de ferramentas completa — e a maioria das ferramentas de que você precisa já está lá.
O que é um módulo?
Um módulo é simplesmente um arquivo Python com um conjunto de funções, variáveis e outros recursos que você pode usar no seu programa. Você já conhece funções como print(), input(), len() e range() — essas são tão usadas que ficam disponíveis automaticamente. Mas existem centenas de outras organizadas em módulos que precisam ser importadas antes de usar.
Como importar um módulo
Para usar um módulo, você usa a palavra-chave import:
import math
raiz_quadrada = math.sqrt(16) # Raiz quadrada de 16
print(raiz_quadrada) # 4.0
potencia = math.pow(2, 10) # 2 elevado a 10
print(potencia) # 1024.0
arredondamento_para_cima = math.ceil(2.4) # arredondamento para cima
print(arredondamento_para_cima) # 3
arredondamento_para_baixo = math.floor(2.4) # arredondamento para baixo
print(arredondamento_para_baixo) # 2
O import math carrega o módulo math (matemática) e torna todas as suas funções disponíveis através do prefixo math.. Você acessa as funções do módulo escrevendo nome_do_modulo.nome_da_funcao().
Importando apenas o que você precisa com from
Se você só precisar de uma função específica de um módulo, pode importá-la diretamente com from ... import:
from math import sqrt
resultado = sqrt(25) # sem precisar do prefixo math.
print(resultado) # 5.0
Agora você chama sqrt() diretamente, sem o prefixo math.. Isso é útil quando você usa muito a função e quer escrever menos.
Você também pode importar várias funções de uma vez:
from math import sqrt, ceil, floor
print(sqrt(9)) # 3.0 — raiz quadrada
print(ceil(4.2)) # 5 — arredonda para cima
print(floor(4.8)) # 4 — arredonda para baixo
Dando um apelido ao módulo com as
Às vezes o nome do módulo é longo e você quer algo mais curto. Use as para criar um apelido:
import math as m
print(m.sqrt(36)) # 6.0
print(m.pi) # 3.141592653589793
Esse padrão é muito comum em bibliotecas populares, você vai ver isso bastante no futuro.
Módulos da biblioteca padrão do Python
O Python vem com dezenas de módulos prontos, chamados de biblioteca padrão. Veja os mais úteis para quem está começando:
math — funções matemáticas
import math
print(math.sqrt(144)) # 12.0 — raiz quadrada
print(math.pi) # 3.141592... — o número Pi
print(math.ceil(3.2)) # 4 — arredonda para cima
print(math.floor(3.8)) # 3 — arredonda para baixo
print(math.pow(2, 10)) # 1024.0 — potência (2 elevado a 10)
print(math.fabs(-7)) # 7.0 — valor absoluto (sem sinal)
random — números aleatórios
import random
print(random.randint(1, 10)) # número inteiro aleatório entre 1 e 10
print(random.random()) # número decimal aleatório entre 0.0 e 1.0
print(random.choice(["cara", "coroa"])) # escolhe um item aleatório da lista
cartas = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"]
random.shuffle(cartas) # embaralha a lista (modifica no lugar)
print(cartas[:5]) # mostra as 5 primeiras cartas embaralhadas
datetime — datas e horários
from datetime import datetime, date
agora = datetime.now() # obtem a data e hora atual
print(agora) # mostra algo como: 2026-06-30 14:35:22.123456
formatado = agora.strftime("%d/%m/%Y %H:%M") # formata a data em um padrão desejado
print(formatado) # 30/06/2026 14:35
hoje = date.today() # obtem apenas a data, sem a hora
print(hoje) # 2026-06-30
print(hoje.year) # 2026
print(hoje.month) # 6
print(hoje.day) # 30
os — interagindo com o sistema operacional
import os
pasta_atual = os.getcwd() # Retorna o caminho da pasta atual
print(pasta_atual) # mostra algo como: C:\Users\dev\Desktop\semeando-devs\7-funcoes-em-python
arquivos = os.listdir(".") # lista os arquivos da pasta atual
print(arquivos) # mostra uma lista com os nomes dos arquivos e pastas
existe = os.path.exists("dados.txt") # verifica se um arquivo existe
print(existe) # True se existir, False se não existir
str — métodos embutidos de texto
Além dos módulos, o Python já traz funções úteis embutidas nos próprios tipos de dados. Você não precisa importar nada para usar os métodos do tipo str (texto).
As funções abaixo, você já conhece. Elas fazem parte do próprio tipo str do Python — você não precisa importar nenhum módulo para usá-los. Eles são recursos embutidos na linguagem.
texto = " Olá, Mundo! "
print(texto.strip()) # Remove espaços das bordas: "Olá, Mundo!"
print(texto.lower()) # Tudo minúsculo: " olá, mundo! "
print(texto.upper()) # Tudo maiúsculo: " OLÁ, MUNDO! "
print(texto.replace("Mundo", "Python")) # " Olá, Python! "
print(texto.split(",")) # [' Olá', ' Mundo! ']
Como saber o que um módulo oferece
Se você quiser ver tudo que um módulo tem disponível, pode usar a função dir():
import math
print(dir(math))
A saída será uma lista mostrando todas as funções disponíveis:
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc', 'ulp']
As funções que começam e terminam com
__, dois underscores, são chamadas de métodos mágicos. Elas não foram criadas para serem chamadas diretamente por usuários, mas são chamadas internamente pelas funções do Python.
Para ler a descrição de uma função específica, temos o help():
import math
help(math.sqrt)
A saída será uma explição do que a função faz:
Help on built-in function sqrt in module math:
sqrt(x, /)
Return the square root of x.
Exemplo prático: sorteador de times
Vamos criar um exemplo que combina três módulos para construir algo divertido:
import random
from datetime import datetime
def sortear_times(jogadores):
if len(jogadores) < 2:
print("São necessários pelo menos 2 jogadores.")
return
embaralhados = jogadores.copy() # .copy() faz uma cópia da lista original
random.shuffle(embaralhados) # embaralha a lista
metade = len(embaralhados) // 2 # divide a lista ao meio. O // faz com que o resultado seja um número inteiro
time_1 = embaralhados[:metade] # pega a primeira metade da lista
time_2 = embaralhados[metade:] # pega a segunda metade da lista
return time_1, time_2
def exibir_resultado(time_1, time_2):
agora = datetime.now()
formatado = agora.strftime("%d/%m/%Y às %H:%M")
print(f"=== Sorteio realizado em {formatado} ===")
print(f"Time 1: {', '.join(time_1)}") # o ', ' faz com que os itens da lista sejam separados por vírgula e espaço
print(f"Time 2: {', '.join(time_2)}")
# Programa principal
jogadores = ["Ana", "Bruno", "Carla", "Diego", "Elena", "Felipe"]
time_1, time_2 = sortear_times(jogadores)
exibir_resultado(time_1, time_2)
Exemplo de saída (o resultado muda a cada execução porque é aleatório!):
=== Sorteio realizado em 30/06/2026 às 14:35 ===
Time 1: Elena, Bruno, Ana
Time 2: Felipe, Diego, Carla
Módulos que precisam de instalação
Além da biblioteca padrão (que já vem com o Python), existe um universo enorme de módulos criados pela comunidade, como:
requests— para fazer requisições à internetpandas— para análise de dadospygame— para criar jogos
Esses módulos precisam ser instalados com o comando pip install nome_do_modulo no terminal antes de importar. Você vai conhecer esses módulos conforme avança na programação — por enquanto, a biblioteca padrão já oferece muito para trabalhar.
O que aprendemos nesta lição
Nesta lição, você aprendeu que:
- Um módulo é um arquivo Python com funções e recursos prontos para usar.
import nome_do_modulocarrega o módulo inteiro — as funções são acessadas com o prefixomodulo.funcao().from modulo import funcaoimporta apenas uma função específica, sem precisar do prefixo.import modulo as apelidocria um nome curto para o módulo.- A biblioteca padrão do Python já inclui módulos como
math,random,datetimeeos— prontos para usar sem instalar nada. - Módulos criados pela comunidade (como
pandaserequests) precisam ser instalados compip installantes de serem importados.