Fractions made easy
Project description
ezFraction
ezFraction is a custom Python module for working with fractions.
Installation
From PyPI:
pip install ezFraction
From source:
git clone https://github.com/GooDeeJaY/ezFraction.git
cd ezFraction
python -m pip install .
Usage
Importing and initialization:
from ezFraction import Fraction
# passing string
Fraction("3.14") # 157/50
# passing float
Fraction(1.24) # 31/25
# passing int
Fraction(567) # 567/1
# passing fraction
Fraction(28, 3) # 28/3
Properties:
frac = Fraction(4.6)
# Properties
print(frac) # 23/5
print(frac.decimal) # 4.6
print(frac.numerator) # 23
print(frac.denominator) # 5
print(frac.tuple) # (23, 5)
By default fractions will be rounded to 5 decimal places, if you want more or less precision you can set different rounding or even switch off the rounding:
print(Fraction(3.14)) # 333333/100000
print(Fraction(3.14, rounding=None)) # 4166666666666667/1250000000000000
When initializing Fraction
, we can set reduce
to False
in order to get unreduced fraction:
print(Fraction(18.5)) # 37/2
print(Fraction(18.5, reduce=False)) # 185/10
Also, there are .reduce()
and .enlarge()
methods that perform actions that their name tells. Both methods have new_obj
parameter which is used to create new Fraction
instances rather than applying methods to themselves. Apart from .reduce()
, .enlarge()
accepts one additional argument multiplier
that is used to set the different multiplier for enlargement rather than 2 (default).
frac = Fraction(20.5)
print(frac) # 41/2
print(frac.enlarge()) # 82/4
print(frac.enlarge(multiplier=3)) # 246/12
frac2 = frac.reduce(new_obj=True)
print(frac2, frac) # 41/2 246/12
You can use .with_denominator()
method in order to set custom denominator:
frac = Fraction(0.32) # 8/25
custom = frac.with_denominator(35, to_str=True) # 11.2/35
Since this creates an invalid fraction, conversion will not be saved in Fraction instances but rather will be returned as a tuple (default) or string. Also, there is a .with_numerator()
method that does the same thing but with a numerator.
These methods can be useful when comparing fractions with others. For example, we have fractions 8/25 and 9/35, telling which one is greater by glance is not so easy. So here comes the aid of .with_denominator()
method by which we convert 8/25 to 11.2/35.
Now it is easy to tell that 11.2/35 is greater than 9/35
Last but not least, you can perform arithmetic operations with Fraction objects:
frac1 = Fraction(0.48) # 12/25
frac2 = Fraction(1.52) # 38/25
print(frac1 + frac2) # 2/1
print(frac1 - frac2) # -26/25
print(frac1 * frac2) # 456/625
print(frac1 / frac2) # 6/19
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
Hashes for ezFraction-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f77d5d582c9a6b598ad9299ff89c5c6b9464dd39dbbca131cd6a520527a7bd4b |
|
MD5 | d93b3d61d48437d8e94402ce08a81844 |
|
BLAKE2b-256 | a22a2798b3a9ba83ce02c10fb41231076857cf658b5b1c1d439b976a37e567d3 |