📅  最后修改于: 2023-12-03 15:34:26.031000             🧑  作者: Mango
Python自带的分数模块Fraction可以方便地表示和操作有理数。该模块位于标准库fractions中,可以直接使用。
可以使用Fraction()函数创建分数,该函数接受两个参数,分别是分子和分母。如果只传入一个参数,则默认分母为1。
from fractions import Fraction
# 创建分数
a = Fraction(3, 4)
b = Fraction(1, 2)
c = Fraction(5)
print(a) # 3/4
print(b) # 1/2
print(c) # 5/1
可以对分数进行加、减、乘、除等运算。
a = Fraction(3, 4)
b = Fraction(1, 2)
# 加法
c = a + b
print(c) # 5/4
# 减法
c = a - b
print(c) # 1/4
# 乘法
c = a * b
print(c) # 3/8
# 除法
c = a / b
print(c) # 3/2
可以使用限制分母最大值的方式逼近一个实数。
from fractions import Fraction
# 逼近π
def pi_approx(limit):
p = Fraction(0)
for k in range(limit):
p += Fraction(((-1) ** k) * (4 / (8 * k + 1) - 2 / (8 * k + 4) - 1 / (8 * k + 5) - 1 / (8 * k + 6)))
return p
print(pi_approx(10)) # 177/56
print(pi_approx(100)) # 312689/99532
print(pi_approx(1000)) # 355/113
可以使用比较运算符对分数进行大小比较。
a = Fraction(3, 4)
b = Fraction(1, 2)
# 大于
print(a > b) # True
# 小于
print(a < b) # False
# 等于
c = Fraction(6, 8)
print(a == c) # True
可以将分数转换成浮点数,也可以将浮点数转换成分数。
a = Fraction(3, 4)
# 分数转浮点数
print(float(a)) # 0.75
# 浮点数转分数
b = Fraction.from_float(0.75)
print(b) # 3/4
Python中的分数模块Fraction可以方便地表示和操作有理数,是科学计算中的重要工具。