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 à internet
  • pandas — para análise de dados
  • pygame — 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_modulo carrega o módulo inteiro — as funções são acessadas com o prefixo modulo.funcao().
  • from modulo import funcao importa apenas uma função específica, sem precisar do prefixo.
  • import modulo as apelido cria um nome curto para o módulo.
  • A biblioteca padrão do Python já inclui módulos como math, random, datetime e os — prontos para usar sem instalar nada.
  • Módulos criados pela comunidade (como pandas e requests) precisam ser instalados com pip install antes de serem importados.