Skip to main content

Um pacote matemático completo com funções básicas e avançadas

Project description

Math Tools Daniel

Um pacote matemático completo em Python que fornece funções básicas e avançadas para cálculos matemáticos, análise estatística e geração de sequências.

🎯 Funcionalidades

📊 Funções Básicas

  • factorial(n) - Calcula o fatorial de um número
  • is_prime(n) - Verifica se um número é primo
  • average(numbers) - Calcula a média aritmética
  • fibonacci(n) - Calcula o n-ésimo número de Fibonacci

🔧 Funções Auxiliares

  • gcd(a, b) - Máximo Divisor Comum
  • lcm(a, b) - Mínimo Múltiplo Comum
  • is_perfect_number(n) - Verifica números perfeitos
  • prime_factors(n) - Fatores primos de um número
  • power_mod(base, exp, mod) - Exponenciação modular

📈 Análise Estatística

  • median(numbers) - Mediana
  • mode(numbers) - Moda
  • standard_deviation(numbers) - Desvio padrão
  • variance(numbers) - Variância
  • quartiles(numbers) - Quartis (Q1, Q2, Q3)

🔢 Sequências Matemáticas

  • fibonacci_sequence(n) - Sequência de Fibonacci
  • prime_sequence(n) - Sequência de números primos
  • arithmetic_sequence(start, step, n) - Progressão aritmética
  • geometric_sequence(start, ratio, n) - Progressão geométrica
  • factorial_sequence(n) - Sequência de fatoriais
  • collatz_sequence(n) - Sequência de Collatz (3n+1)

🚀 Instalação

Via pip (quando publicado)

pip install math-tools-daniel

Instalação local para desenvolvimento

git clone <repository-url>
cd math_tools_daniel_package

# Instalação básica
pip install -e .

# Instalação com dependências de desenvolvimento
pip install -e .[dev]

💻 Uso

Importação Básica

import math_tools_daniel as mtd

# Funções básicas
print(mtd.factorial(5))        # 120
print(mtd.is_prime(17))        # True
print(mtd.average([1,2,3,4,5])) # 3.0
print(mtd.fibonacci(10))       # 55

Importação Específica

from math_tools_daniel import factorial, is_prime, fibonacci_sequence

# Usar funções diretamente
print(factorial(6))                    # 720
print(is_prime(29))                   # True
print(fibonacci_sequence(8))          # [0, 1, 1, 2, 3, 5, 8, 13]

Análise Estatística

from math_tools_daniel import median, mode, standard_deviation, quartiles

data = [1, 2, 2, 3, 4, 4, 4, 5, 6]

print(f"Mediana: {median(data)}")                    # 4.0
print(f"Moda: {mode(data)}")                        # [4]
print(f"Desvio Padrão: {standard_deviation(data)}")  # ~1.58
print(f"Quartis: {quartiles(data)}")                # (2.0, 4.0, 5.0)

Sequências Matemáticas

from math_tools_daniel import (
    fibonacci_sequence,
    prime_sequence,
    arithmetic_sequence,
    collatz_sequence
)

print(fibonacci_sequence(10))           # [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
print(prime_sequence(5))               # [2, 3, 5, 7, 11]
print(arithmetic_sequence(1, 3, 5))    # [1, 4, 7, 10, 13]
print(collatz_sequence(7))             # [7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1]

🧪 Testes

O pacote inclui testes unitários completos usando pytest:

# Instalar dependências de desenvolvimento
pip install -r requirements-dev.txt

# Ou instalar com extras de desenvolvimento
pip install -e .[dev]

# Executar todos os testes
pytest tests/

# Executar testes com cobertura
pytest tests/ --cov=math_tools_daniel --cov-report=html

📚 Documentação

Todas as funções incluem docstrings detalhadas com:

  • Descrição da funcionalidade
  • Parâmetros e tipos
  • Valores de retorno
  • Exemplos de uso
  • Exceções que podem ser levantadas
help(math_tools_daniel.factorial)  # Mostra documentação completa

🛠️ Desenvolvimento

Estrutura do Projeto

math_tools_daniel_package/
├── math_tools_daniel/           # Código principal
│   ├── __init__.py             # Exportações principais
│   ├── utils/                  # Funções básicas e auxiliares
│   │   ├── __init__.py
│   │   ├── math_functions.py   # factorial, is_prime, average, fibonacci
│   │   └── math_helpers.py     # gcd, lcm, is_perfect_number, etc.
│   └── processing/             # Processamento avançado
│       ├── __init__.py
│       ├── statistics.py       # Funções estatísticas
│       └── sequences.py        # Sequências matemáticas
├── tests/                      # Testes unitários
├── setup.py                    # Configuração do pacote
├── requirements.txt            # Dependências
├── README.md                   # Este arquivo
└── .gitignore                 # Arquivos ignorados pelo Git

Requisitos

  • Python 3.8+
  • Sem dependências externas (apenas biblioteca padrão)

🤝 Contribuição

  1. Fork o projeto
  2. Crie uma branch para sua feature (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

📄 Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.

✨ Autor

Daniel Santos

🙏 Agradecimentos

  • Bootcamp DIO - Suzano Python Developer
  • Comunidade Python
  • Contribuidores do projeto

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

math-tools-daniel-1.0.1.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

math_tools_daniel-1.0.1-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

File details

Details for the file math-tools-daniel-1.0.1.tar.gz.

File metadata

  • Download URL: math-tools-daniel-1.0.1.tar.gz
  • Upload date:
  • Size: 16.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for math-tools-daniel-1.0.1.tar.gz
Algorithm Hash digest
SHA256 88762b48930b5ece620ed27830f7d8571d5230efc697dff01e4e2bf6c4e8737a
MD5 95f99e029dcb0041bfe817493710bbf4
BLAKE2b-256 a3fff44d9c3f83bfcf2147133157943830229d1ad9f9396eb8fca869bc81d6da

See more details on using hashes here.

File details

Details for the file math_tools_daniel-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for math_tools_daniel-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dde0ec77150a045451a4ea1a2f9bbc8246166a93c851ac5578be7e3dc73c6e56
MD5 6b9e3de2e6e708bba3ca17a9d420908b
BLAKE2b-256 93fd6a1b5c8adee47e58235e7da92b9aeccb037d2cc367471fbafc10f6474b74

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page