📜  Python中的分数模块Fraction(1)

📅  最后修改于: 2023-12-03 15:34:26.031000             🧑  作者: Mango

Python中的分数模块Fraction

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可以方便地表示和操作有理数,是科学计算中的重要工具。