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úmerois_prime(n)- Verifica se um número é primoaverage(numbers)- Calcula a média aritméticafibonacci(n)- Calcula o n-ésimo número de Fibonacci
🔧 Funções Auxiliares
gcd(a, b)- Máximo Divisor Comumlcm(a, b)- Mínimo Múltiplo Comumis_perfect_number(n)- Verifica números perfeitosprime_factors(n)- Fatores primos de um númeropower_mod(base, exp, mod)- Exponenciação modular
📈 Análise Estatística
median(numbers)- Medianamode(numbers)- Modastandard_deviation(numbers)- Desvio padrãovariance(numbers)- Variânciaquartiles(numbers)- Quartis (Q1, Q2, Q3)
🔢 Sequências Matemáticas
fibonacci_sequence(n)- Sequência de Fibonacciprime_sequence(n)- Sequência de números primosarithmetic_sequence(start, step, n)- Progressão aritméticageometric_sequence(start, ratio, n)- Progressão geométricafactorial_sequence(n)- Sequência de fatoriaiscollatz_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
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
📄 Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
✨ Autor
Daniel Santos
- Email: danfergatthi@gmail.com
- GitHub: @daniel
🙏 Agradecimentos
- Bootcamp DIO - Suzano Python Developer
- Comunidade Python
- Contribuidores do projeto
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88762b48930b5ece620ed27830f7d8571d5230efc697dff01e4e2bf6c4e8737a
|
|
| MD5 |
95f99e029dcb0041bfe817493710bbf4
|
|
| BLAKE2b-256 |
a3fff44d9c3f83bfcf2147133157943830229d1ad9f9396eb8fca869bc81d6da
|
File details
Details for the file math_tools_daniel-1.0.1-py3-none-any.whl.
File metadata
- Download URL: math_tools_daniel-1.0.1-py3-none-any.whl
- Upload date:
- Size: 18.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dde0ec77150a045451a4ea1a2f9bbc8246166a93c851ac5578be7e3dc73c6e56
|
|
| MD5 |
6b9e3de2e6e708bba3ca17a9d420908b
|
|
| BLAKE2b-256 |
93fd6a1b5c8adee47e58235e7da92b9aeccb037d2cc367471fbafc10f6474b74
|