15.12.2022 Views

Python Eficaz

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

mostra limitações em sua precisão (por exemplo, 1/3 será uma aproximação).

Para representar números racionais sem limite de precisão, prefira usar a classe

Fraction do módulo nativo fractions.

Lembre-se

• O Python tem tipos e classes nativos em módulos que podem representar

praticamente todo tipo de valor numérico.

• A classe Decimal é ideal para situações que demandem grande precisão e

comportamento previsível de arredondamento, como é o exemplo do cálculo

de valores monetários.

Item 48: Saiba onde encontrar os módulos

desenvolvidos pela comunidade

O Python tem um repositório central de módulos chamado Python Package

Index, ou simplesmente PyPI (https://pypi.python.org) para instalar e usar em

seus programas. Esses módulos são criados e mantidos por pessoas como você,

membros da Grande Comunidade do Python. Quando nos deparamos com um

desafio que não nos é familiar, o PyPI é o melhor lugar para procurar por código

pronto que o deixará mais perto de seu objetivo.

Para usar PyPI, é preciso operar uma ferramenta de linha de comando chamada

pip. O pip já vem instalado no Python 3.4 e posteriores (também acessível no

shell com o comando python -m pip). Para as versões anteriores, as instruções de

instalação manual do pip estão na página do Guia do Usuário para

Empacotamento do Python, no endereço https://packaging.python.org.

Uma vez instalado, usar o pip para instalar um novo módulo é muito simples.

Por exemplo, o comando a seguir instala o módulo pytz que eu sei em outro item

deste mesmo capítulo (consulte o Item 45: “Use datetime em vez de time para

relógios locais”):

$ pip3 install pytz

Downloading/unpacking pytz

Downloading pytz-2014.4.tar.bz2 (159kB): 159kB downloaded

Running setup.py (...) egg_info for package pytz

www.full-ebook.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!