Python 的 Fraction 模块
在 Python 中,Fraction 模块支持有理数运算。使用此模块,我们可以从整数、浮点数、十进制数和其他数值以及字符串创建分数。
此类的构造函数接受分子和分母作为参数,并从中创建分数。分子的默认值为 0,分母的默认值为 1。当分母为 0 时,构造函数会引发 ZeroDivisionError 异常。
创建 Fraction 实例
首先,我们将了解如何使用分子和分母创建分数。
示例
from fractions import Fraction as frac print(frac(45, 54)) print(frac(12, 47)) print(frac(0, 15))
输出
5/6 12/47 0
处理浮点数
我们可以将一些浮点数作为 Fraction 对象的参数。如果我们提供精确的浮点数,它将尝试将其转换为整数类型的分子和分母值。
示例
from fractions import Fraction as frac
print(frac(33.33))
print(frac('33.33'))
输出
2345390243441541/70368744177664 3333/100
使用字符串与 Fraction
让我们看看 Fraction 对象的字符串类型参数的其他一些示例。它也支持数字的符号,支持 + 或 - 号。
示例
from fractions import Fraction as frac
print(frac('5/6'))
print(frac('-25.12'))
print(frac('96.251 \t\n'))
print(frac('3.14159265359'))
输出
5/6 -628/25 96251/1000 314159265359/100000000000
限制分母
正如我们所见,有时 Fraction 对象中的分母非常大。因此,我们可以限制分母的长度。默认长度为 1000000。这有助于对浮点数据进行有理逼近。为了限制分母,可以使用名为 **limit_denominator()** 的函数。
示例
from fractions import Fraction as frac
print(frac('3.14159265359'))
print(frac('3.14159265359').limit_denominator(1000))
print(frac('3.14159265359').limit_denominator(100))
print(frac('3.14159265359').limit_denominator(10))
print(frac('36.25'))
print(frac('36.25').numerator)
print(frac('36.25').denominator)
输出
314159265359/100000000000 355/113 311/99 22/7 145/4 145 4
分数的数学运算
分数也支持数学运算,如加法、减法、乘法、除法、乘方等。
示例
from fractions import Fraction as frac
print('Add: ' + str(frac('5/4') + frac('9/8')))
print('Subtract: ' + str(frac('15/20') - frac('2/8')))
print('Multiply: ' + str(frac('2/3') * frac('5/7')))
print('Divide: ' + str(frac('80/125') / frac('12/45')))
print('Power: ' + str(frac('5/6') ** 3))
输出
Add: 19/8 Subtract: 1/2 Multiply: 10/21 Divide: 12/5 Power: 125/216
平方根、向下取整和向上取整
此对象还支持平方根、向下取整、向上取整和其他一些运算。
示例
from fractions import Fraction as frac
import math
print('Square Root: ' + str(math.sqrt(frac(36, 64))))
print('Square Root: ' + str(frac(math.sqrt(frac(36, 64)))))
print('Floor Value: ' + str(math.floor(frac('22/7'))))
print('Ceiling Value: ' + str(math.ceil(frac('22/7'))))
输出
Square Root: 0.75 Square Root: 3/4 Floor Value: 3 Ceiling Value: 4
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP