Da trilha de Python Este conceito ainda não saiu como card do dia. ir para o card de hoje

Python Módulos Intermediário

Módulos e pacotes

Em Python, módulos são arquivos .py que contêm definições e código, e pacotes são diretórios que agrupam módulos. Para usar código de um módulo, usamos import. Por exemplo, import math traz funções matemáticas para o nosso programa.

Um pacote é um diretório com um arquivo especial __init__.py (que pode estar vazio) para indicar que ele é um pacote. Dentro dele, podemos ter módulos e subpacotes. Isso organiza projetos grandes em partes reutilizáveis.

O bloco if __name__ == "__main__": permite que um arquivo seja executado como script ou importado como módulo sem executar código indesejado. Quando o arquivo é rodado diretamente, __name__ vale "__main__"; quando importado, vale o nome do módulo.

Ambientes virtuais isolam as dependências de cada projeto. Ferramentas como venv criam uma pasta com um interpretador Python e bibliotecas próprias, evitando conflitos entre versões. Ativamos o ambiente e instalamos pacotes com pip apenas para aquele projeto.

Pontos-chave

  • import traz um módulo inteiro; from modulo import funcao importa nomes específicos.
  • __init__.py transforma um diretório em pacote e pode inicializar o pacote.
  • if __name__ == "__main__": evita executar código de teste quando o módulo é importado.
  • Ambientes virtuais (python -m venv .venv) isolam dependências por projeto.
exemplo_modulos.py
# exemplo_modulos.py
# Demonstra criação e uso de um módulo simples e o bloco __main__.

def saudacao(nome):
    """Retorna uma saudação personalizada."""
    return f"Olá, {nome}!"

def soma(a, b):
    """Retorna a soma de dois números."""
    return a + b

# Este bloco só executa se o arquivo for rodado diretamente.
if __name__ == "__main__":
    print(saudacao("Mundo"))
    print("2 + 3 =", soma(2, 3))

# Para importar este módulo em outro arquivo:
# import exemplo_modulos
# print(exemplo_modulos.saudacao("Python"))

Exercícios

  1. 1
    Fácil

    Criando e importando um módulo

    Crie um módulo chamado calculadora.py com as funções somar(a, b) e multiplicar(a, b). Depois, em um arquivo main.py, importe o módulo e use as funções para calcular e imprimir a soma e o produto de 4 e 5.

    Resolver
  2. 2
    Médio

    Pacote com `__init__.py` e execução como script

    Crie um pacote chamado matematica com um arquivo __init__.py que importa a função potencia do módulo potencia.py (que você deve criar). A função potencia(base, expoente) retorna base ** expoente. No arquivo potencia.py, inclua um bloco if __name__ == "__main__": que imprime Teste: 2 elevado a 3 é 8 quando o módulo é executado diretamente. Em um arquivo main.py fora do pacote, importe matematica e use matematica.potencia(3, 4) para imprimir o resultado no formato 3^4 = 81.

    Resolver
  3. 3
    Desafio

    Ambiente virtual e pacote com submódulos

    Crie um ambiente virtual chamado venv e ative-o. Dentro dele, crie um pacote geometria com os módulos areas.py e perimetros.py. O módulo areas.py deve ter area_quadrado(lado) e area_circulo(raio) (use math.pi). O módulo perimetros.py deve ter perimetro_quadrado(lado) e circunferencia(raio). O __init__.py deve importar todas as funções. No arquivo main.py, importe geometria e imprima os resultados para um quadrado de lado 3 e um círculo de raio 2, no formato:

    Área quadrado: 9
    Perímetro quadrado: 12
    Área círculo: 12.566370614359172
    Circunferência: 12.566370614359172
    

    Inclua um bloco if __name__ == "__main__": em areas.py que imprime Teste área quadrado: 4 quando executado diretamente.

    Resolver

Continue estudando