Para criar um módulo, você simplesmente precisa criar um arquivo .py e salvar seu código Python dentro dele. Este arquivo pode conter:

Exemplo Prático: calculadora.py

Vamos criar um módulo simples chamado calculadora.py que contém algumas funções matemáticas básicas:

# calculadora.py

PI = 3.14159

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

def subtrair(a, b):
    """Retorna a diferença entre dois números."""
    return a - b

def multiplicar(a, b):
    """Retorna o produto de dois números."""
    return a * b

def dividir(a, b):
    """Retorna a divisão de dois números. Lida com divisão por zero."""
    if b == 0:
        raise ValueError("Não é possível dividir por zero.")
    return a / b

class CalculadoraAvancada:
    """Uma classe para operações de calculadora mais complexas."""
    def potencia(self, base, expoente):
        return base ** expoente

    def raiz_quadrada(self, numero):
        if numero < 0:
            raise ValueError("Não é possível calcular a raiz quadrada de um número negativo.")
        return numero ** 0.5

if __name__ == "__main__":
    # Este bloco é executado APENAS quando o arquivo é rodado diretamente,
    # não quando é importado como um módulo.
    print("--- Testando calculadora.py diretamente ---")
    print(f"Soma de 5 e 3: {somar(5, 3)}")
    print(f"PI: {PI}")
    calc = CalculadoraAvancada()
    print(f"2 elevado a 3: {calc.potencia(2, 3)}")
    print("---------------------------------------")

Nota sobre if __name__ == "__main__":

Este é um padrão muito comum em Python. O código dentro deste bloco só será executado se o arquivo (calculadora.py neste caso) for executado diretamente (ex: python calculadora.py). Se o arquivo for importado como um módulo em outro script, o código dentro deste bloco não será executado. Isso é útil para colocar testes ou exemplos de uso que você não quer que rodem automaticamente toda vez que o módulo for importado.