# 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)
```bash
pip install math-tools-daniel
```
### Instalação local para desenvolvimento
```bash
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
```python
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
```python
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
```python
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
```python
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:
```bash
# 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
```python
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](LICENSE) para detalhes.
## ✨ Autor
**Daniel Santos**
- Email: danfergatthi@gmail.com
- GitHub: [@daniel](https://github.com/DanielSantos08)
## 🙏 Agradecimentos
- Bootcamp DIO - Suzano Python Developer
- Comunidade Python
- Contribuidores do projeto
Raw data
{
"_id": null,
"home_page": "https://github.com/DanielSantos08/dio_suzano_python_developer/tree/master/math-tools-daniel",
"name": "math-tools-daniel",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "mathematics, statistics, sequences, fibonacci, prime, factorial",
"author": "Daniel Santos",
"author_email": "danfergatthi@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/a3/ff/f44d9c3f83bfcf2147133157943830229d1ad9f9396eb8fca869bc81d6da/math-tools-daniel-1.0.1.tar.gz",
"platform": null,
"description": "# Math Tools Daniel\n\nUm pacote matem\u00e1tico completo em Python que fornece fun\u00e7\u00f5es b\u00e1sicas e avan\u00e7adas para c\u00e1lculos matem\u00e1ticos, an\u00e1lise estat\u00edstica e gera\u00e7\u00e3o de sequ\u00eancias.\n\n## \ud83c\udfaf Funcionalidades\n\n### \ud83d\udcca Fun\u00e7\u00f5es B\u00e1sicas\n- **`factorial(n)`** - Calcula o fatorial de um n\u00famero\n- **`is_prime(n)`** - Verifica se um n\u00famero \u00e9 primo\n- **`average(numbers)`** - Calcula a m\u00e9dia aritm\u00e9tica\n- **`fibonacci(n)`** - Calcula o n-\u00e9simo n\u00famero de Fibonacci\n\n### \ud83d\udd27 Fun\u00e7\u00f5es Auxiliares\n- **`gcd(a, b)`** - M\u00e1ximo Divisor Comum\n- **`lcm(a, b)`** - M\u00ednimo M\u00faltiplo Comum\n- **`is_perfect_number(n)`** - Verifica n\u00fameros perfeitos\n- **`prime_factors(n)`** - Fatores primos de um n\u00famero\n- **`power_mod(base, exp, mod)`** - Exponencia\u00e7\u00e3o modular\n\n### \ud83d\udcc8 An\u00e1lise Estat\u00edstica\n- **`median(numbers)`** - Mediana\n- **`mode(numbers)`** - Moda\n- **`standard_deviation(numbers)`** - Desvio padr\u00e3o\n- **`variance(numbers)`** - Vari\u00e2ncia\n- **`quartiles(numbers)`** - Quartis (Q1, Q2, Q3)\n\n### \ud83d\udd22 Sequ\u00eancias Matem\u00e1ticas\n- **`fibonacci_sequence(n)`** - Sequ\u00eancia de Fibonacci\n- **`prime_sequence(n)`** - Sequ\u00eancia de n\u00fameros primos\n- **`arithmetic_sequence(start, step, n)`** - Progress\u00e3o aritm\u00e9tica\n- **`geometric_sequence(start, ratio, n)`** - Progress\u00e3o geom\u00e9trica\n- **`factorial_sequence(n)`** - Sequ\u00eancia de fatoriais\n- **`collatz_sequence(n)`** - Sequ\u00eancia de Collatz (3n+1)\n\n## \ud83d\ude80 Instala\u00e7\u00e3o\n\n### Via pip (quando publicado)\n```bash\npip install math-tools-daniel\n```\n\n### Instala\u00e7\u00e3o local para desenvolvimento\n```bash\ngit clone <repository-url>\ncd math_tools_daniel_package\n\n# Instala\u00e7\u00e3o b\u00e1sica\npip install -e .\n\n# Instala\u00e7\u00e3o com depend\u00eancias de desenvolvimento\npip install -e .[dev]\n```\n\n## \ud83d\udcbb Uso\n\n### Importa\u00e7\u00e3o B\u00e1sica\n```python\nimport math_tools_daniel as mtd\n\n# Fun\u00e7\u00f5es b\u00e1sicas\nprint(mtd.factorial(5)) # 120\nprint(mtd.is_prime(17)) # True\nprint(mtd.average([1,2,3,4,5])) # 3.0\nprint(mtd.fibonacci(10)) # 55\n```\n\n### Importa\u00e7\u00e3o Espec\u00edfica\n```python\nfrom math_tools_daniel import factorial, is_prime, fibonacci_sequence\n\n# Usar fun\u00e7\u00f5es diretamente\nprint(factorial(6)) # 720\nprint(is_prime(29)) # True\nprint(fibonacci_sequence(8)) # [0, 1, 1, 2, 3, 5, 8, 13]\n```\n\n### An\u00e1lise Estat\u00edstica\n```python\nfrom math_tools_daniel import median, mode, standard_deviation, quartiles\n\ndata = [1, 2, 2, 3, 4, 4, 4, 5, 6]\n\nprint(f\"Mediana: {median(data)}\") # 4.0\nprint(f\"Moda: {mode(data)}\") # [4]\nprint(f\"Desvio Padr\u00e3o: {standard_deviation(data)}\") # ~1.58\nprint(f\"Quartis: {quartiles(data)}\") # (2.0, 4.0, 5.0)\n```\n\n### Sequ\u00eancias Matem\u00e1ticas\n```python\nfrom math_tools_daniel import (\n fibonacci_sequence,\n prime_sequence,\n arithmetic_sequence,\n collatz_sequence\n)\n\nprint(fibonacci_sequence(10)) # [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]\nprint(prime_sequence(5)) # [2, 3, 5, 7, 11]\nprint(arithmetic_sequence(1, 3, 5)) # [1, 4, 7, 10, 13]\nprint(collatz_sequence(7)) # [7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1]\n```\n\n## \ud83e\uddea Testes\n\nO pacote inclui testes unit\u00e1rios completos usando pytest:\n\n```bash\n# Instalar depend\u00eancias de desenvolvimento\npip install -r requirements-dev.txt\n\n# Ou instalar com extras de desenvolvimento\npip install -e .[dev]\n\n# Executar todos os testes\npytest tests/\n\n# Executar testes com cobertura\npytest tests/ --cov=math_tools_daniel --cov-report=html\n```\n\n## \ud83d\udcda Documenta\u00e7\u00e3o\n\nTodas as fun\u00e7\u00f5es incluem docstrings detalhadas com:\n- Descri\u00e7\u00e3o da funcionalidade\n- Par\u00e2metros e tipos\n- Valores de retorno\n- Exemplos de uso\n- Exce\u00e7\u00f5es que podem ser levantadas\n\n```python\nhelp(math_tools_daniel.factorial) # Mostra documenta\u00e7\u00e3o completa\n```\n\n## \ud83d\udee0\ufe0f Desenvolvimento\n\n### Estrutura do Projeto\n```\nmath_tools_daniel_package/\n\u251c\u2500\u2500 math_tools_daniel/ # C\u00f3digo principal\n\u2502 \u251c\u2500\u2500 __init__.py # Exporta\u00e7\u00f5es principais\n\u2502 \u251c\u2500\u2500 utils/ # Fun\u00e7\u00f5es b\u00e1sicas e auxiliares\n\u2502 \u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u2502 \u251c\u2500\u2500 math_functions.py # factorial, is_prime, average, fibonacci\n\u2502 \u2502 \u2514\u2500\u2500 math_helpers.py # gcd, lcm, is_perfect_number, etc.\n\u2502 \u2514\u2500\u2500 processing/ # Processamento avan\u00e7ado\n\u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u251c\u2500\u2500 statistics.py # Fun\u00e7\u00f5es estat\u00edsticas\n\u2502 \u2514\u2500\u2500 sequences.py # Sequ\u00eancias matem\u00e1ticas\n\u251c\u2500\u2500 tests/ # Testes unit\u00e1rios\n\u251c\u2500\u2500 setup.py # Configura\u00e7\u00e3o do pacote\n\u251c\u2500\u2500 requirements.txt # Depend\u00eancias\n\u251c\u2500\u2500 README.md # Este arquivo\n\u2514\u2500\u2500 .gitignore # Arquivos ignorados pelo Git\n```\n\n### Requisitos\n- Python 3.8+\n- Sem depend\u00eancias externas (apenas biblioteca padr\u00e3o)\n\n## \ud83e\udd1d Contribui\u00e7\u00e3o\n\n1. Fork o projeto\n2. Crie uma branch para sua feature (`git checkout -b feature/AmazingFeature`)\n3. Commit suas mudan\u00e7as (`git commit -m 'Add some AmazingFeature'`)\n4. Push para a branch (`git push origin feature/AmazingFeature`)\n5. Abra um Pull Request\n\n## \ud83d\udcc4 Licen\u00e7a\n\nEste projeto est\u00e1 licenciado sob a Licen\u00e7a MIT - veja o arquivo [LICENSE](LICENSE) para detalhes.\n\n## \u2728 Autor\n\n**Daniel Santos**\n- Email: danfergatthi@gmail.com\n- GitHub: [@daniel](https://github.com/DanielSantos08)\n\n## \ud83d\ude4f Agradecimentos\n\n- Bootcamp DIO - Suzano Python Developer\n- Comunidade Python\n- Contribuidores do projeto\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Um pacote matem\u00e1tico completo com fun\u00e7\u00f5es b\u00e1sicas e avan\u00e7adas",
"version": "1.0.1",
"project_urls": {
"Bug Reports": "https://github.com/DanielSantos08/dio_suzano_python_developer/math-tools-daniel/issues",
"Documentation": "https://github.com/DanielSantos08/dio_suzano_python_developer/math-tools-daniel/wiki",
"Homepage": "https://github.com/DanielSantos08/dio_suzano_python_developer/tree/master/math-tools-daniel",
"Source": "https://github.com/DanielSantos08/dio_suzano_python_developer/math-tools-daniel"
},
"split_keywords": [
"mathematics",
" statistics",
" sequences",
" fibonacci",
" prime",
" factorial"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "93fd6a1b5c8adee47e58235e7da92b9aeccb037d2cc367471fbafc10f6474b74",
"md5": "6b9e3de2e6e708bba3ca17a9d420908b",
"sha256": "dde0ec77150a045451a4ea1a2f9bbc8246166a93c851ac5578be7e3dc73c6e56"
},
"downloads": -1,
"filename": "math_tools_daniel-1.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6b9e3de2e6e708bba3ca17a9d420908b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 18876,
"upload_time": "2025-10-06T20:39:57",
"upload_time_iso_8601": "2025-10-06T20:39:57.566691Z",
"url": "https://files.pythonhosted.org/packages/93/fd/6a1b5c8adee47e58235e7da92b9aeccb037d2cc367471fbafc10f6474b74/math_tools_daniel-1.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a3fff44d9c3f83bfcf2147133157943830229d1ad9f9396eb8fca869bc81d6da",
"md5": "95f99e029dcb0041bfe817493710bbf4",
"sha256": "88762b48930b5ece620ed27830f7d8571d5230efc697dff01e4e2bf6c4e8737a"
},
"downloads": -1,
"filename": "math-tools-daniel-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "95f99e029dcb0041bfe817493710bbf4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 16153,
"upload_time": "2025-10-06T20:39:59",
"upload_time_iso_8601": "2025-10-06T20:39:59.256682Z",
"url": "https://files.pythonhosted.org/packages/a3/ff/f44d9c3f83bfcf2147133157943830229d1ad9f9396eb8fca869bc81d6da/math-tools-daniel-1.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-06 20:39:59",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "DanielSantos08",
"github_project": "dio_suzano_python_developer",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "math-tools-daniel"
}